Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi RichEdit (selstart,sellength,findtext...) (https://www.delphipraxis.net/65927-richedit-selstart-sellength-findtext.html)

Headi 22. Mär 2006 13:42


RichEdit (selstart,sellength,findtext...)
 
Hi DPler,

Komme leider wieder Mal einfach nicht weiter.
Ich habe eine textdatei, diese lade ich in ein Richedit.
Dann durchsuche ich das Richedit mit Findtext.

Mein ziel ist, dass er nach {info}haahah{/info} sucht, die tags entfehrnt und nur
den text zwischen den Tags behält, den Rest soll er löschen.

Jetzt suchen, finden, und tags entfehrnen habe ich schon.
Nur bringe ich es nicht hin, das er mir den restlichen Text löscht... :lol:

So sieht mein Text bis jetzt aus:

Delphi-Quellcode:
with RichEdit1 do
  while FindText('{info}', 0, Length(RichEdit1.Text), [])<> -1 do
    begin
    SelStart := FindText('{info}', 0, Length(RichEdit1.Text), []);
    SelLength := FindText('{/info}', 0, Length(RichEdit1.Text), [])+7-Selstart;
    SelText := Copy(RichEdit1.Text,SelStart+7,SelLength-13);
    end;
kann mir einer helfen wie ich den ergänzen muss?

vielen dank schonmal!

mfg headi

Flare 22. Mär 2006 13:52

Re: RichEdit (selstart,sellength,findtext...)
 
Wenn er wirklich den gesamten Text löschen soll außer dem, was in dem Tag drinsteht, dann kopier doch den Text der in dem Tag steht, lösche alles und füge den dann ein.
Oder habe ich da was nicht beachtet?


Flare

himitsu 22. Mär 2006 13:59

Re: RichEdit (selstart,sellength,findtext...)
 
Wie wäre es, wenn du einfach per StringReplace die '{info}' und '{/info}' durch '' ersetzt?

Flocke 22. Mär 2006 14:11

Re: RichEdit (selstart,sellength,findtext...)
 
Der lesende Zugriff auf .Text ist hier ziemlich ineffizient wenn der Text groß ist:
Delphi-Quellcode:
SelText := Copy(RichEdit1.Text,SelStart+7,SelLength-13);
Das geht besser so (man kann SelText auch lesen):
Delphi-Quellcode:
Copy(SelText, 8, SelLength - 13);
Wenn du das Ergebnis jetzt noch an .Text und nicht .SelText zuweist, dann ist der komplette restliche Text auch weg. Also:
Delphi-Quellcode:
Text := Copy(SelText, 8, SelLength - 13);

Headi 22. Mär 2006 14:29

Re: RichEdit (selstart,sellength,findtext...)
 
Zitat:

Zitat von Flocke
Der lesende Zugriff auf .Text ist hier ziemlich ineffizient wenn der Text groß ist:
Delphi-Quellcode:
SelText := Copy(RichEdit1.Text,SelStart+7,SelLength-13);
Das geht besser so (man kann SelText auch lesen):
Delphi-Quellcode:
Copy(SelText, 8, SelLength - 13);
Wenn du das Ergebnis jetzt noch an .Text und nicht .SelText zuweist, dann ist der komplette restliche Text auch weg. Also:
Delphi-Quellcode:
Text := Copy(SelText, 8, SelLength - 13);

vielen dank!!
Ist genau das was ich gesucht habe :thumb:


Auch den anderen vielen dank!!

mfg headi


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz