我有一个log文件,里面有些特殊字符,用UltraEdit转换成十六进制是这样的:
CE C4 B5 B5 A8 00 00 00 B3 F6 BF E2 04 00 00 00 CE C4 B5 B5 55 20 20 20 我现在想把00 00 00,包含前面的A8,04;20 20 20前面包含55的替换成回车换行
其中00 00 00和 20 20 20前面的不固定,怎么样才能把整个文件中所包含的都替换了?
也就是要把A8 00 00 00 ;04 00 00 00 ;55 20 20 20 替换成回车换行。
CE C4 B5 B5 A8 00 00 00 B3 F6 BF E2 04 00 00 00 CE C4 B5 B5 55 20 20 20 我现在想把00 00 00,包含前面的A8,04;20 20 20前面包含55的替换成回车换行
其中00 00 00和 20 20 20前面的不固定,怎么样才能把整个文件中所包含的都替换了?
也就是要把A8 00 00 00 ;04 00 00 00 ;55 20 20 20 替换成回车换行。
查找
?? 00 00 00
替换
0D
全部替换查找
?? 20 20 20替换
0D
全部替换
sStringReplace(s,#$??#$20#$20#$20,#13#10,[rfReplaceAll]);
使用TStringlist将他分隔成多行,然后一个for循环将每一行最后一个字符删除,之后自己再接回去吧,中间添加#13#10就行了。
delphi里面一般不能处理正则表达式
i:=pos(chr(0)+chr(0)+chr(0),str);
while i>0 do
begin
str:=Leftstr(str,i-1)+chr(13)+chr(10)+Rightstr(str,Length(str)-(i+2));
i:=pos(chr(0)+chr(0)+chr(0),str);
end;
i:=pos(chr(32)+chr(32)+chr(32),str);
while i>0 do
begin
str:=Leftstr(str,i-1)+chr(13)+chr(10)+Rightstr(str,Length(str)-(i+2));
i:=pos(chr(32)+chr(32)+chr(32),str);
end;