用新行和制表符替换字符串中的字符我正在编写一个 OLEDB 查询,该查询需要 SQL 命令位于字符串中,不包含行尾或制表符,仅包含空格。
以下内容有效,但我无法找到如何在不必创建“空”字符串的情况下执行此操作。
用户可以使用 Windows 计算机中安装的 JMP 修改 SQL 查询。
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);
数据存取回复:用新行和制表符替换字符串中的字符这很奇怪。 加载项没有什么特别之处会影响这一点。 您能否提供更多关于到底什么不起作用的详细信息?
Hex() 函数可以帮助您准确查看输入字符串中的(不可见)字符。
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 ) );
结果:
Hex(tab) = "09";
Hex(return) = "0D";
Hex(SQL_query) = "53454C45435420612C20622C20630D0946524F4D206D797461626C650D0957484552452061203D2027616C696365270D0909414E442062204245545745454E202738362720414E442027393127";
回复:用新行和制表符替换字符串中的字符由于某种原因,当我正在开发的加载项内部时,这些替换似乎都不起作用(?)
如果我复制并粘贴代码,则替换有效。
回复:用新行和制表符替换字符串中的字符您可以使用转义序列对于那些特殊字符。
SQL_query =
"SELECT a, b, c
FROM mytable
WHERE a = 'alice'
AND b BETWEEN '86' AND '91'";
SQL_query = Substitute( SQL_query,
"\!t", " ",
"\!r", " "
);
您可能还会发现代入()功能很有用。 它将就地进行替换并避免分配回原始字符串。
Substitute Into( SQL_query,
"\!t", " ",
"\!r", " "
);