Einzelnen Beitrag anzeigen

Delphi.Narium

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

AW: Zeilenumbruch ersetzen Algorithmus

  Alt 11. Mär 2018, 15:28
Im Case kannst Du jeweils das zuletzt gelesene Zeichen abfragen.

Findest Du nun eine #13 und willst sie nicht ausgeben, so wird sie halt nicht geschrieben.

Oder anders ausgedrückt:

In der Else werden alle die Zeichen ausgegeben, die nicht vorher im Case irgendwie verarbeitet wurden.

Soll also z. B. die #13 nie ausgegeben werden, sähe der Quelltext so aus:
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
        #13 : ; // Das Zeichen wird schlicht und einfach ignoriert.
      else
        output.Write(ch,1); // Übrige Zeichen ausgeben.
      end;
    until input.Read(ch, 1) = 0;
    input.Position := 0;
    output.Position := 0;
  end;
end;
Oder die Antwort auf deine Frage Wenn ich jetzt auf #13 treffe, was muss ich dann machen? ist: Nichts.

Alle anderen Zeichen werden ausgegeben.
  Mit Zitat antworten Zitat