Zitat von
fkerber:
Hauptknackpunkt ist, dass ein Memo bzw. Richedit CR und LF nicht richtig interpretiert.
RichEdits können das, so weit ich weiß. Habe ich jetzt nicht getestet, aber z.B. zeigt WordPad eine Unix-Textdatei korrekt an, die für Notepad nur aus einer einzigen Zeile besteht.
Wenn du schon eine eigene Komponente machen willst, dann ersetze doch einfach nur die Routine LoadFromStream so, dass LFs korrekt interpretiert werden.
Anderer Ansatz wäre z.B. die Meldungen WM_SETTEXT/EM_REPLACESEL zu überschreiben und hier die LF -> CR/LF Behandlung einzubauen. Also WM_SETTEXT(Text) wird einfach zu EM_SETSEL(0,-1)+EM_REPLACESEL(Text) und in EM_REPLACESEL baust du dann das ganze modifizierte Handling ein.
[Nachtrag]
Habe gerade mal in die
VCL-Quellen geschaut - normalerweise sollte auch ein TMemo mit CR/LF oder nur CR oder nur LF umgehen können (ungetestet). Wenn's um das Speichern geht: da müsstest du nur vorher
Code:
Memo1.Lines.LineBreak := #10;
setzen und die Datei wird im Unix-Format abgespeichert.