| Autor |
Beitrag |
hansg
      
Beiträge: 168
Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
|
Verfasst: Mi 22.01.03 19:03
Hallo,
ich möchte einen String (wird aus einem edit erzeugt) prüfen ob dieser Zahlen (0-9) oder sonstige Zeichen enthällt.
Wer hat einen Tip?
Gruß Hans
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: Mi 22.01.03 19:17
Hallo,
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var i:Integer; s:String; ... s:='TextmitZahlen012336undSonderzeichen#$%'; for i:=1 to Length(s) do begin case s[i] of '0'..'9': ShowMessage('Zahl'); 'A'..'Z', 'a'..'z', 'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß': ShowMessage('Buchstaben'); else ShowMessage('Sonderzeichen'); end; // case end; // for i |
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
hansg 
      
Beiträge: 168
Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
|
Verfasst: Do 23.01.03 20:08
Hallo,
danke für die Antwort.
Leider komme ich damit nicht weit, ich möchte folgendes erreichen:
String prüfen, das Ergebnis in einer Variable anzeigen.
enthällt eine Zahl dann Variable =1
enthällt eine Buchstaben dann Variable =2
enthällt ein Sonderzeichen dann Variable =3
Gruß Hans
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 23.01.03 20:10
Du mußt doch nur die ShoMessages durch deinen Code ersetzen. 
|
|
hansg 
      
Beiträge: 168
Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
|
Verfasst: Do 23.01.03 21:15
Hallo,
geht leider so nicht.
Durch die Schleife bekomme ich am Ende immern nur den Zustand des
letzten Zeichen mitgeteilt.
Ich möchte aber nur wissen ob sich eine Zahl, ein Buchstabe oder ein Sonderzeichen im String befindet.
Gruß Hans
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: Do 23.01.03 21:23
Hallo,
ich verstehe leider nicht so was Du genau willst.
Wie lang ist der Text den du durchssuchst? Was machst Du, wenn Zahlen und Text gemischt sind?
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Brueggendiek
      
Beiträge: 304
Win 98, Win98SE, Win XP Home
D5 Std
|
Verfasst: Do 23.01.03 21:34
Hallo Hans!
Da offensichtlich mehrere der Typen gleichzeitig im String vorkommen können, mußt Du ein Set verwenden!
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| type tStringinhalt = set of (stBuchstabe, stZiffer, stSonder); var Stringinhalt: tStringinhalt; i:Integer; s:String; ... s:='TextmitZahlen012336undSonderzeichen#$%'; Stringinhalt := []; for i:=1 to Length(s) do begin case s[i] of '0'..'9': Stringinhalt := stringinhalt + [stZiffer]; 'A'..'Z', 'a'..'z', 'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü', 'ß': Stringinhalt := stringinhalt + [stBuchstabe]; else Stringinhalt := stringinhalt + [stSonder]; end; // case end; // for i
if stBuchstabe in Stringinhalt then ShowMessage('Buchstabe enthalten');
if stZiffer in Stringinhalt then ShowMessage('Ziffer enthalten');
if stSonder in Stringinhalt then ShowMessage('Sonderzeichen enthalten'); |
So klappt das!
Gruß
Dietmar Brüggendiek
|
|
hansg 
      
Beiträge: 168
Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
|
Verfasst: Do 23.01.03 22:04
Hallo Brueggendiek,
danke für den Code genau das  habe ich gesucht.
Danke Hans
|
|