Autor Beitrag
hansg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Mi 22.01.03 19:17 
Hallo,

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
BeitragVerfasst: 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



BeitragVerfasst: Do 23.01.03 20:10 
Du mußt doch nur die ShoMessages durch deinen Code ersetzen. :roll:
hansg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: 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!
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

Win XP Professional SP3, Vista Ultimate 32 SP1
Delphi 6 Professional
BeitragVerfasst: Do 23.01.03 22:04 
Hallo Brueggendiek,

danke für den Code genau das :D :P :P :D habe ich gesucht.

Danke Hans