Stringreplace für nur eine Zeile



  • Ahoi hoi..!

    Hab ein Problem mit der Stringreplace Methode und zwar habe ich folgende Funktion:

    AnsiString repchars[12] = { KName_org, KName_neu, Name_org, Name_neu, Vname_org, Vname_neu, Gruppe_org, Gruppe_neu, Rang_org, Rang_neu  };
    
      for (int i = 0; i < 12; i +=2)
    
      Form1->Memo1->Text = StringReplace(Form1->Memo1->Text, repchars[i], repchars[i+1], TReplaceFlags() << rfReplaceAll);
    

    Das Problem ist nun das immer alles ersetzt wird ich brauche dies allerdings immer nur in einer Zeile die vorher in einem Edit feld eingegeben wurde.
    Wie kann man das machen?



  • Wende es halt auf die Zeile an (TMemo::Lines::Strings) anstatt auf den kompletten Memo-Inhalt.



  • kannsu dich genauer ausdrücken, ich weiß nun nicht wie das praktisch umzusaetzen is :-//

    hasu nen Ansatzquellcode dafür?



  • Original erstellt von <DUDE>:
    kannsu dich genauer ausdrücken

    Na klar: geh in die BCB-Hilfe, schlag unter TMemo nach und arbeite dich in dessen Eigenschaften über Lines zu (T)Strings vor. Dann siehst du dir dessen Eigenschaften und Methoden sowie die dazugehörigen Beispiele an, soweit vorhanden. Ausserdem benutzt du die Suchfunktion hier im Forum zum Thema 'memo lines' und suchst in den aufgelisteten Threads nach praktischen Beispielen, mit denen du etwas herumexperimentierst, um zu verstehen, wie man auf die einzelnen Zeilen eines Memos zugreift.



  • Es geht ja nicht darum auf eine einzelne Zeile zu zugreifen sondern ob man das innerhalb der Stringreplace funktion machen kann...!
    bzw. ob das überhaupt möglich ist..!

    z.B. so ähnlich

    Form1->Memo1->Text = StringReplace(Form1->Memo1->Strings[Edit6->Text.ToInt()], repchars[i], repchars[i+1], TReplaceFlags() << rfReplaceAll);
    


  • Warum probierst du das nicht einfach aus?


Anmelden zum Antworten