Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - String Vergleich


Barret - Do 03.02.11 14:44
Titel: String Vergleich
Hallo!

Ich steh grad etwas auf dem Schlauch.
Ich bin dabei ein System zu erstellen welches dynamische XML-Dateien ausspuckt.


Jetz bin ich an einer stelle an der ich eine interne Funktion abgleichen muss.
Und zwar habe ich einen String und will erausbekommen ob er einen bestimmten Teil enthält.

Konkretes Beispiel: String der rein kommt: "view_kat_art_72"
Ich habe zwei Funktionen die ich an hand dessen unterscheiden muss. Zum einen "view_kat_art_" und die Zahl die dahinter steht ist eine interne Datenbankzuordnung. Proble ist jetzt, dass ich aber auch noch eine Funktion "view_kat_" habe ... Ich muss das ganze aber schon genau haben welches der beiden es ist.

Sollte eig nich schwer sein, steh da grad aber wie gesagt auf dem Schlauch....


Regan - Do 03.02.11 14:50

Hallo,

user profile iconBarret hat folgendes geschrieben Zum zitierten Posting springen:
Ich steh grad etwas auf dem Schlauch.

Dann geh doch einfach runter ;)

user profile iconBarret hat folgendes geschrieben Zum zitierten Posting springen:
Konkretes Beispiel: String der rein kommt: "view_kat_art_72"
Ich habe zwei Funktionen die ich an hand dessen unterscheiden muss. Zum einen "view_kat_art_" und die Zahl die dahinter steht ist eine interne Datenbankzuordnung. Proble ist jetzt, dass ich aber auch noch eine Funktion "view_kat_" habe ... Ich muss das ganze aber schon genau haben welches der beiden es ist.

Prüfe doch einfach, ob es das mit "art" ist. Und wenn nicht, dann kannst du davon ausgehen, dass es das andere ist. Wie wäre es da zum Beispiel mit einer case Anweisung und der Funktion Pos?

Viele Grüße
Regan


Crombo - Do 03.02.11 15:10

Hallo,

vielleicht wären auch Regular Expressions für dich hilfreich. (http://www.regular-expressions.info/delphi.html)

Ansonsten wie Regan geschrieben hat mittels Pos() und case.

Crombo


Barret - Do 03.02.11 15:15

Ich hab auch schon überlegt ob ich das mit case mach...

Ich weiß halt nur nich wie viele Funktionen es überhaupt geben wird.
Bis jetzt sind es 5 interne Funktionen. Wobei die anderen 3 100% zuzuordnen sind.

Bin grad auf der Suche wie ich die Position des letzten Unterstriches auslese.
Wobei es sein kann das gar kein Unterstrich in dem Funktioneaufruf vorhanden ist. (welches dann externe Funktionen sind die später mit der Benutzung der XML-File ausgelöst werden).

EDIT: Is zwar nich wirklich schnell wie meine Lösung jetzt ist aber es geht.
(In ner Schleife den String durchlaufen und immer die Pos zwischenspeichern wenn ein Unterstrich da is. Und danach dann Den String bis zur letzten gefundenen Pos mit den Befehlen abgleichen ...)


elundril - Do 03.02.11 16:14

warum fragst du nicht Pos('view_kat_', XMLPart) und Pos('art_', XMLPart) ab? Wenn beides > 0 ist dann weißt du das es view_kat_art_ ist. Wenn nur das erste >0 ist, weißt du das view_kat_ ist.

lg elundril