delphi: 在写入文本文件时替换字符串中的换行符,该字符串由 varchar2 字段 (oracle) 填充
delphi: replace line breaks in a string, which is filled out of an varchar2 field (oracle), while writing a textfile
我正在 oracle 数据库上执行 sql 语句并将结果写入文本文件。名为 "targets" (varchar2) 的字段中有换行符。
直到现在我都这样替换了换行符:
function CleanText(strText : String) : String;
var
ii: integer;
begin
for ii := 1 to Length(strText) do
if strText[ii] < chr(32) then strText[ii] := ' ';
end;
Result := strText;
end;
但现在我想用特定字符串替换换行符:“{\n}”。我尝试了不同的方法,例如:
strText := AnsiReplaceStr(strText, #13#10, '{\n}');
但是没用。写入的文本文件中没有"{\n}"。
我从 sql 语句中复制粘贴了一个示例字符串:
"1) Sicherung der Liquidität der Stadt XYZ durch:'#$A'- exakte Buchführung zur Sicherung des korrekten Ausweises der Forderungen / Verbindlichkeiten"
我可以这样做(但我认为,这不是一个好的解决方案):
strText := AnsiReplaceStr(strText, '''#$A''', '{\n}');
你有什么想法吗?
此致,
丹尼斯
先用SysUtils.AdjustLineBreaks
规范换行符:
strText := AdjustLineBreaks(strText, tlbsCRLF);
strText := AnsiReplaceStr(strText, #13#10, '{\n}');
另一种选择是使用 TStringList
及其 LineBreak
属性:
function CleanText(strText : String) : String;
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Text := strText;
sl.LineBreak := '{\n}';
Result := sl.Text;
finally
sl.Free;
end;
end;
我正在 oracle 数据库上执行 sql 语句并将结果写入文本文件。名为 "targets" (varchar2) 的字段中有换行符。
直到现在我都这样替换了换行符:
function CleanText(strText : String) : String;
var
ii: integer;
begin
for ii := 1 to Length(strText) do
if strText[ii] < chr(32) then strText[ii] := ' ';
end;
Result := strText;
end;
但现在我想用特定字符串替换换行符:“{\n}”。我尝试了不同的方法,例如:
strText := AnsiReplaceStr(strText, #13#10, '{\n}');
但是没用。写入的文本文件中没有"{\n}"。
我从 sql 语句中复制粘贴了一个示例字符串:
"1) Sicherung der Liquidität der Stadt XYZ durch:'#$A'- exakte Buchführung zur Sicherung des korrekten Ausweises der Forderungen / Verbindlichkeiten"
我可以这样做(但我认为,这不是一个好的解决方案):
strText := AnsiReplaceStr(strText, '''#$A''', '{\n}');
你有什么想法吗?
此致, 丹尼斯
先用SysUtils.AdjustLineBreaks
规范换行符:
strText := AdjustLineBreaks(strText, tlbsCRLF);
strText := AnsiReplaceStr(strText, #13#10, '{\n}');
另一种选择是使用 TStringList
及其 LineBreak
属性:
function CleanText(strText : String) : String;
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Text := strText;
sl.LineBreak := '{\n}';
Result := sl.Text;
finally
sl.Free;
end;
end;