Ich weiß ja nicht wie Deine Ausgabe der Text-Datei vonstatten geht, erstellt dein Parser einen String pro Zeile?
Falls ja, check doch lediglich die letzten 2 zeichen nach deinen Wert und ersetz das dann.
Nachtrag:
Bzw. implementier in deinem Parser diese Zusatzfunktion, da du ja bereits eine Zeile in irgendeiner art und weise besitzt check die letzten 2 bytes.
Ein Einblick in deinen Parser wäre hilfreich.
Weiterer Nachtrag:
Delphi-Quellcode:
//hier ein mini Beispiel für Strings, mit bissl justierung auch für PChar's bzw alles wo man "position + wert" nutzt, daß Prinzip bleibt immer das selbe
Function CalibrateString( EineParserZeile : String ) : String;
begin
// letzte 2 zeichen nach 0D0A checken
if Length(EineParserZeile) > 1 then // falls man einen minimum längen-check einbaut wird's sicherer. optional.
if ((EineParserZeile[Length(EineParserZeile)-1] = char($0D)) and (EineParserZeile[Length(EineParserZeile)] = char($0A))) then
begin
EineParserZeile[Length(EineParserZeile)-1] := char($0A);
// hier fehlt ein aufruf um das letzte zeichen zu entfernen, ich hab grad kein delphi parat aber für Strings würd ich einen Copy() Befehl verwenden.
end;
// letztes zeichen nach 0D checken
if Length(EineParserZeile) >= 1 then // für mehr Speed kann man auch die ausführung oben mit einbauen aber falls tatsächlich mal eine Zeile mit nur einem char($0D) reinkommt wird die nicht verarbeitet
if EineParserZeile[Length(EineParserZeile)] = char($0D) then EineParserZeile[Length(EineParserZeile)] := char($0A);
// Rückgabe an dein Programm
Result := EineParserZeile;
end;
//ps: als "Case" kann man das ganze auch verpacken.