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