wie füge ich in eine Memofeld einen \n\r?



  • Funzt aber trotzdem nicht im Memo. Ich denke man muß dort den Text aufdröseln un mit Add() wieder einfügen. Zu faul... 😉

    Und warum sollte ich als fauler Progger "\r\n" einfügen, wenn "\n" absolut reicht?!?



  • kann man es nicht durch "\x10\x15" ersetzten??? sowas müsste doch auch möglich sein



  • Warum glaubt mir eigentlich keiner, ich habe es zumindest ausprobiert. Wenn ihr das auch getan hättet...

    Wenn es denn unbedingt ein Memo sein soll:

    Memo1->Text = "Hallo%nWelt%n";
    TStringList* slTemp = new TStringList();
    slTemp->Text = Memo1->Text;
    int pos;
    AnsiString SearchString = "%n";
    AnsiString ReplaceString = "\n";
    pos = slTemp->Text.AnsiPos(SearchString)	;
    if (pos)
    {
    	do
    	{
    		slTemp->Text =  slTemp->Text.Delete(pos, SearchString.Length());
    		slTemp->Text = slTemp->Text.Insert(ReplaceString, pos);
    		pos = slTemp->Text.AnsiPos(SearchString)	;
    	} while (pos);
    }
    Memo1->Text = slTemp->Text;
    delete slTemp;
    


  • Hallo,

    es gibt StringReplace() wie schon Jansen sagte

    Memo1->Text = StringReplace(Memo1->Text, "%n", "\r\n",  TReplaceFlags() <<rfReplaceAll);
    

    das nehmen wirklich die faulen Programmierer :p



  • ABER DIE /N und /R WERDEN NICHT KORREKT UMGESETZT, ES ERSCHEINEN SONDERZEICHEN IM MEMO, ANSTELLE EINES ZEILENUMBRUCHS!!!!!!!!!!!!!!!!!



  • Hallo ich bin nicht schwerhörig!

    aber bei deiner Lösung ersetzt das Memo dein hinzugefügtes "\n" automatisch durch ein "\r\n" deshalb wird kein Steuerzeichen angezeigt!

    Dieses kannst du ganz einfach nachvollziehen, indem du den Text in einer
    Textdatei speicherst ala

    Memo1->Lines->SaveToFile("c:\\test.txt");
    


  • Lies doch bitte mal was da steht und was die Aufgabenstellung war...

    Beim Ersetzen von "%n" durch "\n" (oder "\r\n") steht im Memo anschließend "Hallo|Welt|" in EINER Zeile und es wird NICHT in mehrere Zeile aufgeteilt. In RichEdit funktioniert das, in StringList funktioniet das, aber NICHT im Memo.



  • Memo1->Text = "Hallo%nWelt%n"; 
    TStringList* slTemp = new TStringList();
    slTemp->Text = Memo1->Text;
    int pos;
    AnsiString SearchString = "%n";
    AnsiString ReplaceString = "\n";
    pos = slTemp->Text.AnsiPos(SearchString)    ;
    if (pos)
    {
    	do
    	{
    		slTemp->Text =  slTemp->Text.Delete(pos, SearchString.Length());
    		slTemp->Text = slTemp->Text.Insert(ReplaceString, pos);
    		pos = slTemp->Text.AnsiPos(SearchString)    ;
    	} while (pos);
    }
    Memo1->Text = slTemp->Text;
    delete slTemp;
    
    Memo1->Text = StringReplace(Memo1->Text, "\r\n", "-LOL-",  TReplaceFlags() <<rfReplaceAll);
    

    dein Code geht deswegen auch nicht! weil es automatisch in "\r\n" umgewandelt wird (RichEdit macht auch gleich "\r\n" daraus deshalt sieht man kein Steuerzeichen)

    ergo kann man gleich

    Memo1->Text = StringReplace(Memo1->Text, "%n", "\r\n",  TReplaceFlags() <<rfReplaceAll);
    

    verwenden.



  • Ok, du hast recht. Lag daran dass ich "\n\r" eingegeben hatte. Muss wohl die Hitze sein (besser Entschuldigung fällt mir nicht ein... 😉 )

    Sorry



  • Hast du früher mit einem Mac gearbeitet ? Da wäre "\n\r" richtig. 😉



  • Wäre 'ne praktische Ausrede - aber nein, hab' ich nicht...


Anmelden zum Antworten