Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Stringsuche (https://www.delphipraxis.net/175621-stringsuche.html)

Crowbar 4. Jul 2013 08:53

Stringsuche
 
Hallo,

ich möchte ein bestimmtes Wort in einem String suchen. Das geht wunderbar mit dem POS-Befehl, aber wenn der String ein weiteres (ähnliches) Wort enthält, gibt es Probleme.

z.B. Ich suche das Wort "customer", der String enthält jedoch auch das Wort "customerType".

Im String steht "test1,test2,customerType,test3,customer,test4 , test5".
Ich möchte die Position des Wortes "customer" herausfinden. Mit dem POS-Befehl gibt er mir jedoch die Position von "customerType" zurück.

Wie kann ich genau dieses Wort ("customer") suchen?

Gruß
Crowbar

Der schöne Günther 4. Jul 2013 08:58

AW: Stringsuche
 
Es sind doch einzelne Worte (oder Teile) aus denen der String zusammengebastelt ist. Ist das Trennzeichen (hier ein Komma) denn immer gleich? Dann kannst du es einfach (z.B. in einer
Delphi-Quellcode:
TStringList
) aufsplitten lassen und dir jeden einzelnen Wert anschauen:

Delphi-Quellcode:
TStringList
anlegen,
Delphi-Quellcode:
Delimeter
auf deinen String setzen und
Delphi-Quellcode:
DelimitedText
auf das Trennzeichen (das Komma)

baumina 4. Jul 2013 08:59

AW: Stringsuche
 
Oder du suchst statt nach "customer" nach "customer,"

Oder du versuchst es über StrUtils.SearchBuf.

DeddyH 4. Jul 2013 09:06

AW: Stringsuche
 
Oder PosEx statt Pos verwenden und ggf. ab der aktuellen Fundposition einfach weitersuchen.

Crowbar 4. Jul 2013 09:36

AW: Stringsuche
 
Hallo,

ja, das Trennzeichen ist immer gleich.
Die Idee von baumina ist prima. :thumb:
Zitat:

Zitat von baumina (Beitrag 1220705)
Oder du suchst statt nach "customer" nach "customer,"...

Vielen Dank!

Klaus01 4. Jul 2013 10:20

AW: Stringsuche
 
Hallo,

wenn customer dann aber am Ende des Strings steht, folgt kein Komma nach dem Suchstring.
Eine Suche nach customer, würde dann fehlschlagen.

Grüße
Klaus

nahpets 4. Jul 2013 10:28

AW: Stringsuche
 
Wieso, vorm Suchen an den String ein Komma dranhängen und das Problem ist behoben.
Delphi-Quellcode:
iPos := Pos('customer,',sZeichenfolge + ',');

sx2008 4. Jul 2013 11:09

AW: Stringsuche
 
Zitat:

Zitat von Crowbar (Beitrag 1220703)
ich möchte ein bestimmtes Wort in einem String suchen.

Wozu?
Ich frage deshalb weil du möglicherweise ein Problem auf umständliche Weise lösen willst wofür es längst bessere Lösungen gibt.

ByTheTime 7. Jul 2013 19:44

AW: Stringsuche
 
Hier sind ein paar kleine Funktionen dazu. Eigentlich sollte PosEx ausreichen. DeddyH hat es ja schon genannt. Mal eine andere Frage. Was ist das für eine Zeichenkette? Denn wenn es CommaText ist, könnte man es auch wunderbar in eine ListBox laden und dann hast du jedes Wort als einzelnes Item.

RWarnecke 7. Jul 2013 20:22

AW: Stringsuche
 
Zitat:

Zitat von ByTheTime (Beitrag 1220998)
Denn wenn es CommaText ist, könnte man es auch wunderbar in eine ListBox laden und dann hast du jedes Wort als einzelnes Item.

Und wenn keine ListBox genutzt werden soll/kann, dann einfach die Funktion explode nehmen von den Schweizern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Seite 1 von 2  1 2      

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