grober Vorschlag:
zwei Streams nehmen:
1. Stream = Input
2. Stream = Output
1. Stream byteweise (oder charweise) lesen.
2. jedes Zeichen abfragen, ob es in den Output soll.
3. Zeichen schreiben oder verwerfen.
ungefähr (ungetestet) sowas:
Delphi-Quellcode:
procedure TIrgendeineKlasse.Zeichenaustauschen(input : TMemoryStream; output : TMemoryStream);
Var
ch : Char;
begin
input.Position := 0;
output.Position := 0;
// Ist überhaupt was in der Datei drin?
if input.Read(ch, 1) > 0 then begin
repeat
case ch of
// Hier zeichenweise entscheiden, was geschehen soll.
#10 : begin
output.Write(ch,1);
end;
#13 : begin
// output.Write(ch,1);
end;
else
// Übrige Zeichen ausgeben.
output.Write(ch,1);
end;
until input.Read(ch, 1) = 0;
input.Position := 0;
output.Position := 0;
end;
end;
Das sollte auch bei größeren Datenmengen noch vertretbar schnell sein.