Bei einer 700MB großen Textfile solltest du dich aber auch fragen ob das Zeug überhaupt in den
RAM passt - selbst bei 2 GB könntest du Probleme bekommen.
Ich würde das in einer Datei-Kopier-Funktion lösen:
Delphi-Quellcode:
var
f,g:file of byte;
i:integer;
readbuf:array[1..4096] of byte;
readbytes:integer;
writebuf:array[1..8192] of byte;
writebytes,writebufpos:integer;
begin
assignfile(f,filename);
assignfile(g,writefilename);
reset(f);
rewrite(g);
while not eof(f) do begin
blockread(f,readbuf,length(readbuf),readbytes);
writebytes:=readbytes*2;
writebufpos:=low(writebuf)-2;
for i:=low(readbuf) to high(readbuf) do begin
writebufpos:=writebufpos+2;
case readbytes[i] of
'ä': begin
writebuf[writebufpos]:='A';
writebuf[writebufpos+1]:='E';
end;
'ö': begin
[...]
'ß': begin
writebuf[writebufpos]:='S';
writebuf[writebufpos+1]:='S';
end;
end else
begin
writebuf[writebufpos]:=readbuf[readbufpos];
writebufpos:=writebufpos-1;
writebytes:=writebytes-1;
end;
end;
blockwrite(g,writebuf,writebytes);
end;
closefile(f);
closefile(g);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates