RichEdit bestimmte Linien kopieren



  • Hallo,

    ich möchte in einem RichEdit den Text zwischen <begin> und <end> in die Zwischenablage kopieren.

    Hier mal mein bisheriger Quelltext:

    int col, col2, Zeile, Zeile2;
      for(Zeile = 0; Zeile < Form1->RichEdit1->Lines->Count; Zeile++)
        if ((col=Form1->RichEdit1->Lines->Strings[Zeile].Pos("<begin>")) > 0)
          break;
      for(Zeile2 = 0; Zeile2 < Form1->RichEdit1->Lines->Count; Zeile2++)
        if ((col2=Form1->RichEdit1->Lines->Strings[Zeile2].Pos("<end>")) > 0)
          break;
    

    Der Quelltext findet die Anfangslinie und die Endlinie. Aber wie kann ich jetzt den Text zwischen den gefundenen Linien kopieren? 🙄

    Manuel



  • Hallo

    Da du über die Zeilengrenzen hinaus arbeiten willst, solltest du gleich auf Lines->Text arbeiten. Anfang suchen, Ende suchen, alles dazwischen rauskopieren. Da spielt es keine Rolle ob und wieviele Zeilenumbrüche dazwischen liegen.

    bis bald
    akari



  • Danke,

    aber wie mache ich das jetzt genau?

    Manuel



  • Hallo

    Na genauso wie du es oben gemacht hast (ungetestet)

    int start, end;
    AnsiString text;
    start = Form1->RichEdit1->Lines->Text.Pos("<begin>");
    if (start > 0)
    {
      end = Form1->RichEdit1->Lines->Text.Pos("<end>");
      if (end > start)
      {
        text = Form1->RichEdit1->Lines->Text.SubString(start + 7, end - (start +7));
      }
    }
    

    bis bald
    akari



  • Ah, vielen Dank 🙂

    Manuel


Anmelden zum Antworten