Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Text suchen wenn Ende bekannt (https://www.delphipraxis.net/63836-text-suchen-wenn-ende-bekannt.html)

R2D2 23. Feb 2006 15:14


Text suchen wenn Ende bekannt
 
Hallo!

Ich habe einen Text, als String. In ihm gibt es mehrere Zeichenfolgen, (z.B. '<test>'). Von dieser Zeichenfolge möchte ich den Text bis zu einem davor kommendem Zeichen ('>') kopieren. Es gibt leider keine Möglichkeit, den Text von vorne zu durchsuchen. Ich kenne mich mit Suchalgorithmen nicht gut aus. Kann mir jemand helfen?

Danke

pacman1986 23. Feb 2006 15:18

Re: Text suchen wenn Ende bekannt
 
ab wann darf man den suchen ?

Daniel Schuhmann 23. Feb 2006 15:19

Re: Text suchen wenn Ende bekannt
 
Schau Dir mal Pos, StrPos, Copy und Delete an.

R2D2 23. Feb 2006 15:23

Re: Text suchen wenn Ende bekannt
 
Pos kenn ich schon, damit komm ich allerdings nicht weiter, das es mehrere '<Test>' gibt. Mit StrPos kann ich nichts anfanhen. Für muss ich erst wissen, wo der String vorkommt, und bei delete auch.

Pseudemys Nelsoni 23. Feb 2006 15:55

Re: Text suchen wenn Ende bekannt
 
Ich versteh die ganze Frage nicht... Was und bis wohin willst denn kopieren?

Mavarik 24. Feb 2006 07:54

Re: Text suchen wenn Ende bekannt
 
Zitat:

Zitat von R2D2
Pos kenn ich schon, damit komm ich allerdings nicht weiter, das es mehrere '<Test>' gibt. Mit StrPos kann ich nichts anfanhen. Für muss ich erst wissen, wo der String vorkommt, und bei delete auch.

Dann versuch doch mal:

Sucher := '<Test>';

x := Pos(Sucher,Suchtext);

und dann einfach

i := Pos(Sucher,copy(Suchtext,x+length(Sucher),length(S uchtext)-x+1-length(Sucher)));

[Ungetestet]

Frank


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