Wenn Deine Kombination der Strings
O1+ O221+ O123- .... zulässt, also beliebige Integer, so wird das nur möglich sein, wenn Du den ersten Buchstaben prüfst, obe es ein 'O', 'A' oder 'W' ist. Ist das korrekt, prüfst Du den letzten Buchstaben, ob es '+' oder '-' ist, ist das korrekt, prüfst Du zuletzt, ob dazwischen nur Ziffern stehen.
Wenn Du hinsichtlich der Vorgaben auch noch konkrete Folgen hast: z.B.
richtig:
W1+
A123-
O2+
falsch:
W2+
O1-
A123+
O2+
dann kommst Du nicht herum, diese ebenfalls in der Reihenfolge zu testen. Da ich aus Deinem Text nicht ersehe, was richtig und falsch ist, udn wie die Texte konkret aufgebaut sind, kann ich leider nicht mehr Hilfe geben.
In der Prüfprozedur könntest Du die Parameter etwa so deklarieren:
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: 28: 29: 30: 31: 32: 33: 34: 35:
| function StringPruefung(const s : string; Position : Byte; const richtig : string) : boolean;
var Teil : string; Laenge : byte; Erg : boolean; begin Erg := false; Laenge := Length(s); case Position of 0 : Teil := Copy(s,1,1); 255 : Teil := Copy(s,Laenge,1); else Teil := Copy(s,Position,Laenge - Position-1); end; if Teil<>'' then begin if (Position = 0) or (Position = 255) then begin Erg := (Teil = richtig); end else begin try Erg := StrToInt(Teil)>0; except end; end; end; result := Erg; end; |
Ich habe das hier jetzt nicht getestet. Daher keine Garantie, dass es fehlerfrei funktioniert.
Toleranz ist eine Grundvoraussetzung für das Leben.