nabends,
ich möchte euch nochmal für eure hilfe und gedult danken,
im großen und ganzen läuft das nun, die 500mb datei
wird innerhalb von ein paar sekunden abgearbeitet,
jetzt muss ich nur noch sicher stellen das strings
die ersetzt werden sollen nicht durch die puffer
größe zerstückelt werden, aber ich denke das bekomm
ich auch alleine hin
@FAlter die fastreplace funktion stammt aus einer
unit
deren link ich am anfang gepostet hab, damit lassen sich
sehr schnell stringfunktionen abarbeiten, kann ich dir
sehr empfehlen
der aktuelle code schaut nun so aus:
Delphi-Quellcode:
const
BlockSize = 1024;
var SrcStream, DestStream: TFileStream;
FileName, FileName2, Buffer: String;
N, ChunkLen: Integer;
begin
FileName:= 'dump.txt';
FileName2:= 'dump2.txt';
try
SrcStream:=TFileStream.Create(FileName,fmOpenread or fmShareDenyNone);
DestStream:=TFileStream.Create(FileName2,fmCreate);
N:=SrcStream.Size;
while N>0 do
begin
if N>BlockSize
then ChunkLen:=BlockSize
else ChunkLen:=N;
SetLength(Buffer,ChunkLen);
SrcStream.Read(Buffer[1],ChunkLen);
Buffer:= FastReplace(Buffer,'\n', '', False);
N:=N-ChunkLen;
DestStream.Write(Buffer[1],Length(Buffer));
end;
finally
SrcStream.Free;
DestStream.Free;
end;