Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#5

AW: Zeilenumbruch ersetzen Algorithmus

  Alt 11. Mär 2018, 00:11
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.
  Mit Zitat antworten Zitat