Strings in Delphi vergleichen???

Diskutiere Strings in Delphi vergleichen??? im Developer Network Forum im Bereich Hardware & Software Forum; Hi Wie kann ich in Delphi überprüfen ob eine Zeichenkette einem bestimmten Muster entspricht? Wenn z.B. in ein Edit-Feld pc09 oder PC10 oder...
  • Strings in Delphi vergleichen??? Beitrag #1
D

Deep Space

Bekanntes Mitglied
Dabei seit
01.08.1999
Beiträge
2.004
Reaktionspunkte
0
Hi

Wie kann ich in Delphi überprüfen ob eine Zeichenkette einem bestimmten Muster entspricht?
Wenn z.B. in ein Edit-Feld pc09 oder PC10 oder pC20 usw. eingeben wurde, soll diese Muster erkannt werden. Also müsste ein Filter der folgenden Art erstellt werden: die Buchstaben "p" und c" groß oder klein geschrieben, und dann zwei Ziffern.

Wie lässt sich so ein Filter erzeugen, denn ich habe keine Lust für jede Eingabe-Variation eine eigene if-Abfrage zu schreiben
wink.gif


D.S.
 
  • Strings in Delphi vergleichen??? Beitrag #2
O

O Love

Bekanntes Mitglied
Dabei seit
08.04.1999
Beiträge
2.286
Reaktionspunkte
0
Es gibt eine Komponente "TMaskEdit" (Registerkarte Additional/Zusätzlich), bei der Du in der Property "EditMask" Eingabefilter angeben kannst. Schau es Dir mal an, vielleicht ist das schon das, was Du haben willst...

O Love

------------------
"I will not abide disobedience!"
 
  • Strings in Delphi vergleichen??? Beitrag #3
D

Deep Space

Bekanntes Mitglied
Dabei seit
01.08.1999
Beiträge
2.004
Reaktionspunkte
0
Also es sollte schon ein Edit-feld sein, in das dann auch noch etwas anderes als nach dem muster pc10 eingegeben werden kann.

D.S.
 
  • Strings in Delphi vergleichen??? Beitrag #4
C

cion

Bekanntes Mitglied
Dabei seit
13.07.2000
Beiträge
257
Reaktionspunkte
0
Also da gibt es viele Möglichkeiten. Um z.B. zu überprüfen ob die ersten beiden Buchstaben "pc" sind, dann geht das so (egal ob Groß- oder Kleinschreibung:

IF upcase(copy(edid1.text, 1, 2)) = 'PC' THEN ...

cion

------------------
Webmaster @www.neobrothers.de .: 3D Spiele mit Delphi programmieren :.
 
  • Strings in Delphi vergleichen??? Beitrag #5
D

Deep Space

Bekanntes Mitglied
Dabei seit
01.08.1999
Beiträge
2.004
Reaktionspunkte
0
ok, wie kann man jetzt noch überprüfen, ob dahinter zwei Ziffern wie 09 od. 19 ... eingegeben wurden?

D.S.
 
  • Strings in Delphi vergleichen??? Beitrag #6
C

cion

Bekanntes Mitglied
Dabei seit
13.07.2000
Beiträge
257
Reaktionspunkte
0
Ok also zunächst die 2 vermutlichen zahlen kopieren:

s := copy(edit1.text, 3, 2);
zahl := StrToIntDef(s, -1);

Ja das dürfte es sein. Also in der ersten zeile kopiert man sich die zwei Zahlen heraus (man beginnt bei 3, da ja die ersten beiden Zeichen "pc" sind). Jetzt konvertiert man diesen String zu einem Integer mit StrToIntDef. Doch dieser Befehl erhebt keinen Fehler (wie es bei StrToInt wäre), sondern gibt -1 (einstellbar wie man will) zurück, falls der String nicht zu einer Zahl konvertiert werden kann (dann wäre es keine Zahl).

Ok probiers aus...

cion

------------------
Webmaster @www.neobrothers.de .: 3D Spiele mit Delphi programmieren :.

[Dieser Beitrag wurde von cion am 20. November 2000 editiert.]
 
  • Strings in Delphi vergleichen??? Beitrag #7
O

O Love

Bekanntes Mitglied
Dabei seit
08.04.1999
Beiträge
2.286
Reaktionspunkte
0
Nachtrag:

Unter Delphi 5 gibt es jetzt eine Funktion, die sich SameText nennt. So fällt das UpperCase weg, man schreibt einfach:
Code:
if (SameText (S, 'pc')) then
  DoSomething;

O Love

------------------
"I will not abide disobedience!"
 
Thema:

Strings in Delphi vergleichen???

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben