Problem mit Zeilenumbrüchen im Memofeld



  • Hallo,

    ich ersetze in einem AnsiString die Backspaces von Pfadangaben mit Zeilenumbrüchen und übergebe es in ein Memofeld.

    AnsiString AnsiFKey = FKey;
           AnsiFKey = AnsiReplaceStr(FKey, "\\", "\n");
    
       Memo1->Text = AnsiFKey;
    	Label1->Caption = Memo1->Lines->Strings[4];
    

    Das haut aber nicht hin, da im Memofeld die Steuerzeichen zwar angezeigt aber nicht ausgeführt werden. Der Text im Memo sieht dann in etwa so aus:

    C:|Programme|Borland|Common Files|BDE|bdeinst.cab

    Bei Copy/Paste in den Texteditor von Windows werden diese Zeichen nur als schwarze Rechtecke dargestellt. In Textverarbeitungsprogrammen wie z.B. den OpenOfficeWriter sind die Zeilenumbrüche jedoch wieder korrekt. Wer kann mir einen Tipp geben, wie ich dieses Problem lösen kann?



  • Das Memo erwartet als Zeilenumbruch das Windows-Like CRLF sprich \r\n. Ein bequemerer Weg allerdings ist es, die Eigenschaft CommaText von TMemo::Lines zu verwenden. Dazu ersetzt du einfach '\' durch ',' und weist anschliessend den String der Eigenschaft zu.

    Näheres dazu in der Dokumentation in der Hilfe zu TStrings.

    -junix



  • \r\n ist mir schon bequem genug!

    many thanks!!!


Anmelden zum Antworten