把一个.txt文件里的字符串替换成另一个字符串,效率最好高一点。急!!!分不够可以加...在线等待!
解决方案 »
- delphi 如何释放res资源文件?
- 子类化问题?
- 求delphi关于三层结构的书名
- 类似于FOXMAIL的弹出式的提示框的控件叫什么名字?
- 请教高手,ClientToScreen和MapWindowPoint函数的区别吗?
- 问大家一个简单的问题!!!!!!!!!!
- Ehgrid如何添加计算列,如我想第一列为1 2 3 4 5 ....序号如何做?
- TStringList.AddObject的问题~?
- 特急!Please help me!
- 如何限制文本框只输入数值型数据?
- 如何让Dbgrid中的某列的时间例,只显示年月日,不显示时分秒?
- 很難嗎? 三天了都沒有一個人來頂一下﹐傷心啊﹗CSDN大不如前了﹗
memo1.Text := StringReplace(memo1.Text , 'a','A',[rfReplaceAll]);
memo1.Lines.SaveToFile('c:\c.txt');测试通过
自己改改
lst: TStrings;
lsFile: String;
begin
lst := TStringList.Create;
lst.LoadFromFile(lsFile);
lst.Text := StringReplace(lst.Text,'oldStr','newStr',[rtReplaceAll]);
lst.Free;
end;稍加改造!
lst: TStringlist;
lsFile: String;
begin lst := TStringList.Create;
try
lst.LoadFromFile(lsFile);
lst.Text := StringReplace(lst.Text,'oldStr','newStr',[rtReplaceAll]);
finally
lst.Free;
end;end;
通过对比字节来作
就行了,
如果这也不会用的话,
我想不好意思了
memo1.Text := StringReplace(memo1.Text , 'b,'B',[rfReplaceAll]);
memo1.Lines.SaveToFile('c:\aa1.txt');
var F:TFileStream; C:Char; i:integer;
begin
F:=TFileStream.create('C:\123.txt',fmOpenReadWrite);
while(F.position<F.size) do
begin
F.read(C,1);
if C='A' then
begin
C:='B';
F.position:=F.position-1;
F.write(C,1);
end;
end;
F.free;
end;就算你的文件有100M这个方法都行,不过它部支持中文,要改中文要复杂很多。
语言写的,速度绝对快,你可以和StringReplace比一下,
function Q_ReplaceStr (const SourceString, FindString, ReplaceString: string): string;
替换所有符合要求的字符串,区分大小写。
function Q_ReplaceText (const SourceString, FindString, ReplaceString: string): string;
功能同上。不区分大小写
下面是程序例子,你直接将两段//+-+-+-+-+-+-+-+-中间的代码拷贝到你的程序中,再直接
调用这两个函数就可以了。unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}//+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-const
ToUpperChars: array[0..255] of Char =
(#$00,#$01,#$02,#$03,#$04,#$05,#$06,#$07,#$08,#$09,#$0A,#$0B,#$0C,#$0D,#$0E,#$0F,
#$10,#$11,#$12,#$13,#$14,#$15,#$16,#$17,#$18,#$19,#$1A,#$1B,#$1C,#$1D,#$1E,#$1F,
#$20,#$21,#$22,#$23,#$24,#$25,#$26,#$27,#$28,#$29,#$2A,#$2B,#$2C,#$2D,#$2E,#$2F,
#$30,#$31,#$32,#$33,#$34,#$35,#$36,#$37,#$38,#$39,#$3A,#$3B,#$3C,#$3D,#$3E,#$3F,
#$40,#$41,#$42,#$43,#$44,#$45,#$46,#$47,#$48,#$49,#$4A,#$4B,#$4C,#$4D,#$4E,#$4F,
#$50,#$51,#$52,#$53,#$54,#$55,#$56,#$57,#$58,#$59,#$5A,#$5B,#$5C,#$5D,#$5E,#$5F,
#$60,#$41,#$42,#$43,#$44,#$45,#$46,#$47,#$48,#$49,#$4A,#$4B,#$4C,#$4D,#$4E,#$4F,
#$50,#$51,#$52,#$53,#$54,#$55,#$56,#$57,#$58,#$59,#$5A,#$7B,#$7C,#$7D,#$7E,#$7F,
#$80,#$81,#$82,#$81,#$84,#$85,#$86,#$87,#$88,#$89,#$8A,#$8B,#$8C,#$8D,#$8E,#$8F,
#$80,#$91,#$92,#$93,#$94,#$95,#$96,#$97,#$98,#$99,#$8A,#$9B,#$8C,#$8D,#$8E,#$8F,
#$A0,#$A1,#$A1,#$A3,#$A4,#$A5,#$A6,#$A7,#$A8,#$A9,#$AA,#$AB,#$AC,#$AD,#$AE,#$AF,
#$B0,#$B1,#$B2,#$B2,#$A5,#$B5,#$B6,#$B7,#$A8,#$B9,#$AA,#$BB,#$A3,#$BD,#$BD,#$AF,
#$C0,#$C1,#$C2,#$C3,#$C4,#$C5,#$C6,#$C7,#$C8,#$C9,#$CA,#$CB,#$CC,#$CD,#$CE,#$CF,
#$D0,#$D1,#$D2,#$D3,#$D4,#$D5,#$D6,#$D7,#$D8,#$D9,#$DA,#$DB,#$DC,#$DD,#$DE,#$DF,
#$C0,#$C1,#$C2,#$C3,#$C4,#$C5,#$C6,#$C7,#$C8,#$C9,#$CA,#$CB,#$CC,#$CD,#$CE,#$CF,
#$D0,#$D1,#$D2,#$D3,#$D4,#$D5,#$D6,#$D7,#$D8,#$D9,#$DA,#$DB,#$DC,#$DD,#$DE,#$DF);procedure Q_TinyCopy(Source, Dest: Pointer; L: Cardinal);
asm
JMP DWORD PTR @@tV[ECX*4]
@@tV: DD @@tu00, @@tu01, @@tu02, @@tu03
DD @@tu04, @@tu05, @@tu06, @@tu07
DD @@tu08, @@tu09, @@tu10, @@tu11
DD @@tu12, @@tu13, @@tu14, @@tu15
DD @@tu16, @@tu17, @@tu18, @@tu19
DD @@tu20, @@tu21, @@tu22, @@tu23
DD @@tu24, @@tu25, @@tu26, @@tu27
DD @@tu28, @@tu29, @@tu30, @@tu31
DD @@tu32
@@tu00: RET
@@tu01: MOV CL,BYTE PTR [EAX]
MOV BYTE PTR [EDX],CL
RET
@@tu02: MOV CX,WORD PTR [EAX]
MOV WORD PTR [EDX],CX
RET
@@tu03: MOV CX,WORD PTR [EAX]
MOV WORD PTR [EDX],CX
MOV CL,BYTE PTR [EAX+2]
MOV BYTE PTR [EDX+2],CL
RET
@@tu04: MOV ECX,DWORD PTR [EAX]
MOV DWORD PTR [EDX],ECX
RET
@@tu05: MOV ECX,DWORD PTR [EAX]
MOV DWORD PTR [EDX],ECX
MOV CL,BYTE PTR [EAX+4]
MOV BYTE PTR [EDX+4],CL
RET
@@tu06: MOV ECX,DWORD PTR [EAX]
MOV DWORD PTR [EDX],ECX
MOV CX,WORD PTR [EAX+4]
MOV WORD PTR [EDX+4],CX
RET
@@tu07: MOV ECX,DWORD PTR [EAX]
MOV DWORD PTR [EDX],ECX
MOV CX,WORD PTR [EAX+4]
MOV WORD PTR [EDX+4],CX
MOV CL,BYTE PTR [EAX+6]
MOV BYTE PTR [EDX+6],CL
RET
@@tu08: MOV ECX,DWORD PTR [EAX]
MOV DWORD PTR [EDX],ECX
MOV ECX,DWORD PTR [EAX+4]
MOV DWORD PTR [EDX+4],ECX
RET
@@tu09: MOV ECX,DWORD PTR [EAX]
M
但学习function Q_ReplaceStr (const SourceString, FindString, ReplaceString: string): string;替换所有符合要求的字符串,区分大小写。
function Q_ReplaceText (const SourceString, FindString, ReplaceString: string): string;