Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Richedit.Findetext liefert immer "-1" (https://www.delphipraxis.net/165408-richedit-findetext-liefert-immer-1-a.html)

Lyan 29. Dez 2011 03:11

Delphi-Version: 2010

Richedit.Findetext liefert immer "-1"
 
Hallo,

ich kann mir nicht erklären warum, aber findetext liefert immer "-1" zurück!

Code:
tsearchs := [stwholeword];
ipos := RichEdit2.FindText(':',0,length(richedit2.Lines[i]), tsearchs);
Jemand eine Idee?


MfG

lyan

Coffeecoder 29. Dez 2011 06:58

AW: Richedit.Findetext liefert immer "-1"
 
Hey,

Ich habe keine Möglichkeit nachzusehen, aber hast du bei length folgendes versucht:

Code:
tsearchs := [stwholeword];
ipos := RichEdit2.FindText(':',0,length(richedit2.Lines[i])-1, tsearchs);

himitsu 29. Dez 2011 08:33

AW: Richedit.Findetext liefert immer "-1"
 
Gibt es in der angegebenen Zeile überhaupt einen Doppelpunkt, vor und hinter dem sich keine alphanumerischen Zeichen befinden?

franktron 29. Dez 2011 08:39

AW: Richedit.Findetext liefert immer "-1"
 
Das geht doch garnicht so
Delphi-Quellcode:
tsearchs := [stwholeword];
ipos := RichEdit2.FindText(':',0,length(richedit2.Lines[i]), tsearchs);
Damit such der doch immer nur in der Ersten Zeile und nicht in den Anderen.

himitsu 29. Dez 2011 08:55

AW: Richedit.Findetext liefert immer "-1"
 
Zitat:

Zitat von franktron (Beitrag 1143561)
Damit such der doch immer nur in der Ersten Zeile und nicht in den Anderen.

Hatte ich auch erst falsch übersehn und hatte statt "angegebenen" ebenfalls "erste" geschrieben. :oops:

Nicht die Erste, sondern die i-te :zwinker:

mikhal 29. Dez 2011 08:59

AW: Richedit.Findetext liefert immer "-1"
 
funktioniert denn das?
Delphi-Quellcode:
tsearchs := [stwholeword];
ipos := RichEdit2.FindText(':',0,length(richedit2.Text) - 1, tsearchs);
Grüße
Mikhal

himitsu 29. Dez 2011 09:06

AW: Richedit.Findetext liefert immer "-1"
 
Zitat:

Zitat von mikhal (Beitrag 1143567)
funktioniert denn das?
Delphi-Quellcode:
tsearchs := [stwholeword];
ipos := RichEdit2.FindText(':',0,length(richedit2.Text) - 1, tsearchs);
Grüße
Mikhal

nicht
Delphi-Quellcode:
- 1
, denn es ist nicht
Delphi-Quellcode:
das, von, bis, wie
, sondern
Delphi-Quellcode:
das, von, Anzahl, wie

Lyan 29. Dez 2011 12:48

AW: Richedit.Findetext liefert immer "-1"
 
Mein Suchstring sieht so aus:
Code:
172.88.21.76:hallo:okay

himitsu 29. Dez 2011 12:50

AW: Richedit.Findetext liefert immer "-1"
 
Und demnach ist die -1 auch vollkommen korrekt.

siehe #3
Die Antwort auf meine Frage lautet nämlich "nein".

Lyan 29. Dez 2011 12:58

AW: Richedit.Findetext liefert immer "-1"
 
merke grade das es nicht geht.

Hat jemand eine Idee?

Ich hatte es so vor:

Delphi-Quellcode:
ipos := RichEdit2.FindText(':',0,length(richedit2.Lines[i]), tsearchs);
    sIP := copy(Richedit2.Lines[i],0,ipos-1);
    ipos := RichEdit2.FindText(':',length(sIP)+1,length(richedit2.Lines[i]), tsearchs);
    sUsr := copy(richedit2.lines[i],length(sIP)+1,ipos-1);
    iPos := Pos(#$D#$A,richedit1.lines[i]);
    spwd := copy(richedit2.Lines[i],length(sip)+length(susr)+2,ipos-1);
    richedit1.Lines.Delete(i);
MfG

himitsu 29. Dez 2011 13:03

AW: Richedit.Findetext liefert immer "-1"
 
#$D#$A ... kennst du schon sLineBreak? (wobei du auch direkt die Zeilenlänge hättest nehmen können).

Einzelne Zeilen haben garantiert keinen Zeilenumbruch am Ende stehen.

Da es dir ja auf Geschwindigkeit ankommt:
- ließ die Zeile nur einmal aus dem RichEdit aus und speichere sie in einer Stringvariable
- und schon kannst du auch Delphi-Referenz durchsuchenPos und Delphi-Referenz durchsuchenPosEx verwenden

Warum ':' nicht gefunden wird, hab ich dir doch schon erklärt? (deine Suchparameter stimmen nicht)

Und was hast du gegen die fertigen/funktionierenden Lösungen, welche man dir im anderem Thread genannt hat? (Explode und Co.)

Lyan 29. Dez 2011 13:09

AW: Richedit.Findetext liefert immer "-1"
 
Es hat auch schon funktioniert.
Hab alle Absätze mit einem ":" ersetzt und dann in einen String geschrieben.
Dann mit Pos immer den nächsten Doppelpunkt gesucht.

Dann habe ich mich gefragt:"Was passiert wenn eine Zeile in der Liste falsch ist"?

Und ja, das wäre schon sehr hart codiert, wenn ich das so gelassen hätte.

Und da ich FindText anders in Erinnerung hatte, hab ich es eben so versucht.

Aber du hast mich gradr nochmal auf eine andere Idee gebracht, danke!
MAl versuchen ob es so geht!


MfG

Mavarik 29. Dez 2011 15:41

AW: Richedit.Findetext liefert immer "-1"
 
Hattest Du das nicht schon mit einem Memo versucht?

Wieso Findtext, wenn Du eh auf Lines[x] gehst?
Lines ist der native Text...

Und im Rich sucht man mit:
Delphi-Quellcode:
RichEdit1.FindText('LALALA',0,RichEdit1.GetTextLen,[]);
aber nicht in Lines...

Mavarik


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 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