Hallo,
ich verstehe dich so, dass z.B. auch dieser String ok wäre:
3x1234567 oder auch 67x123457
Habe gerade kein MS-Office zur Hand, daher hier meine ungetestete Lösung:
public function testeString(byref s as string) as boolean
' testet s auf Gültigkeit:
' der String muss die Länge 9 haben
' der String darf ausschließlich die Buchstaben [1234567x] beinhalten
' aufeinanderfolgende Ziffern müssen aufsteigend sein
' es müssen alle Ziffern von 1 bis 7 vorhanden sein
' auf ein 'x' darf eine der Ziffern 1 bis 7 oder ein 'x' folgen
dim i as long, letzteZiffer as long
dim schar as string, lchar as long
dim ZifferVorhanden(1 to 7) as boolen
testeString = false
if not len(s) = 9 then exit function
letzteZiffer = 0
for i = 1 to 7: ZifferVorhanden(i) = false: next
for i = 1 to 9
schar = mid(s, i, 1)
if schar = "x" then
letzteZiffer = 0
elseif instr("1234567", schar) then
lchar = clng(schar)
if lchar < letzteZiffer then exit function
letzteZiffer = lchar
ZifferVorhanden(lchar) = true
else
exit function
end if
next
for i = 1 to 7
if not ZifferVorhanden(i) then exit function
next
testeString = true
end function
Grüße, Ulrich
|