delphi:在编写文本文件时,替换字符串中的换行符,该字符串由varchar2字段(oracle)填充
我正在oracle数据库上执行sql语句,并将结果写入文本文件。一个名为“targets”(varchar2)的字段中有换行符 直到现在,我都是这样替换换行符的:delphi:在编写文本文件时,替换字符串中的换行符,该字符串由varchar2字段(oracle)填充,delphi,replace,line-breaks,Delphi,Replace,Line Breaks,我正在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] := ' '; e
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}”
我从sql语句中复制粘贴了一个示例字符串:
“1)流动资金的流动性:“#$A”-例如,在澳大利亚联邦储备银行(korrekten Ausweises der Forderungeng/Verbindlichkeiten)的流动性”
我可以这样做(但我认为,这不是一个好的解决方案):
你有什么想法吗
问候,,
Dennis首先使用
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;
美好的那很好用。谢谢。直到现在我才知道“AdjustLineBreaks”功能。
strText := AdjustLineBreaks(strText, tlbsCRLF);
strText := AnsiReplaceStr(strText, #13#10, '{\n}');
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;