Ersetzen Sie Zeichen in Zeichenfolgen durch neue Zeilen und TabulatorenIch schreibe eine OLEDB-Abfrage, bei der der SQL-Befehl in einer Zeichenfolge enthalten sein muss, ohne Zeilen- oder Tabulatorende, nur Leerzeichen.
Das Folgende funktioniert, aber ich kann nicht finden, wie das geht, ohne die 'leeren' Strings erstellen zu müssen.
Der Benutzer kann die SQL-Abfrage mithilfe von JMP ändern, das auf Windows-Computern installiert ist.
SQL_query = "SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91'";
// Cleansing strings (inputs need to be in one line)
newline = "
";
tab = " ";
space = " ";
SQL_query = substitute(SQL_query, tab, space);
SQL_query = substitute(SQL_query, newline, space);
SkriptingBetreff: Ersetzen Sie Zeichen in Zeichenfolgen durch neue Zeilen und TabulatorenSie können verwenden Escape-Sequenzen für diese Sonderzeichen.
SQL_query =
"SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91'";
SQL_query = Substitute( SQL_query,
"\!t", " ",
"\!r", " "
);
Vielleicht finden Sie auch die Ersetzen Sie in () Funktion nützlich. Die Ersetzung wird an Ort und Stelle durchgeführt und die Zuordnung zur ursprünglichen Zeichenfolge wird vermieden.
Substitute Into( SQL_query,
"\!t", " ",
"\!r", " "
);
Betreff: Ersetzen Sie Zeichen in Zeichenfolgen durch neue Zeilen und TabulatorenAus irgendeinem Grund scheint keine dieser Substitutionen zu funktionieren, wenn ich mich in einem Add-In befinde (?)
Wenn ich den Code kopiere und einfüge, funktioniert die Ersetzung.
Betreff: Ersetzen Sie Zeichen in Zeichenfolgen durch neue Zeilen und TabulatorenDas ist seltsam. Es gibt nichts Besonderes an einem Add-In, das dies beeinflussen würde. Können Sie näher erläutern, was genau nicht funktioniert?
Mit der Hex () - Funktion können Sie möglicherweise genau sehen, welche (unsichtbaren) Zeichen sich in Ihrer Eingabezeichenfolge befinden.
tab = "\!t";
Show( Hex( tab ) );
return = "\!r";
Show( Hex( return ) );
SQL_query =
"\[SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91']\";
Show( Hex( SQL_query ) );
Ergebnisse:
Hex(tab) = "09";
Hex(return) = "0D";
Hex(SQL_query) = "53454C45435420612C20622C20630D0946524F4D206D797461626C650D0957484552452061203D2027616C696365270D0909414E442062204245545745454E202738362720414E442027393127";