PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AutoIt StringInStr mit mehreren Substrings



Paul Kemp
30-06-2010, 19:43
Hallo!!!

Ich habe lange das Netz durchsucht und leider keine Antwort auf meine Frage gefunden.

Ich möchte gern ein Eingabefeld kontrollieren, ob es (mehrere) bestimmte Zeichen enthält. Ich möchte ungern mehrfach die gleiche If-Schleife verwenden und hoffe daher alles in einer Schleife lösen zu können.



If StringInStr($Inputhex, "h") > 0 Then
MsgBox(16, "Warnung", "only numbers (0-9) and characters from ""a"" to ""g"" possible.")
ContinueLoop
EndIf


Oben im Beispiel wird in dem Eingabefeld Inputhex nur nach "h" gesucht, ich möchte jedoch gern nach alle Buchstaben von h bis z suchen. Könnt ihr mir bitte mit der Syntax helfen?

Vielen Dank und viele Grüße!!!!

Paule

jeebee
30-06-2010, 20:54
0) eine "If-Schleife" ist keine Schleife, sondern eine Bedingung.

1) Seit wann ist 'g' eine gültige Hex-Ziffer? (Mal angenommen, $Inputhex sei nicht völlig falsch benannt)

2) Ich bin mir ziemlich sicher, dass es eine Funktion gibt, die genau das tut, was du haben möchtest... eh voilà: StringIsXDigit($Inputhex) (http://www.autoitscript.com/autoit3/docs/functions/StringIsXDigit.htm)

Damit sieht dein code so aus:
If StringIsXDigit($Inputhex) Then
MsgBox(16, "Warnung", "only numbers (0-9) and characters from ""a"" to ""f"" possible.")
EndIf

edit: alternativ kannst du auch eine For-Schleife verwenden:
For $char = "g" To "z"
If StringInStr($Inputhex, $char) > 0 Then
MsgBox(...)
EndIf
Next


PS: Bin mir bei der Syntax fürs For nicht ganz sicher, ob alles stimmt.

Paul Kemp
01-07-2010, 17:27
Danke jeebee, hat perfekt funktioniert! Mit 0 und 1 hast du natürlich vollkommen recht!

Viele Grüße!