Hallo, ich möchte einen empfangenen String gern zeichenweise prüfen. Dabei möchte ich z.B. wissen, ob die dritte Stelle eine Zahl ist. Ich hätte gedacht, dazu prüfe ich, ob es im ASCII-Code zwischen 48 (für Null) und 57 (für 9) liegt. Der Compiler findet mein if-Statement aber doof ("invalid data type" - keine Ahnung, was er damit meint). Code ausschnittweise: Dim eingangsstring as String * 15 Dim Dritte As String * 1 Dim Dritte_ist_zahl as Bit Dritte = Mid(eingangsstring , 3 , 1) If Dritte > 47 and Dritte < 57 Then Dritte_ist_zahl = 1 End If Hat jemand eine Idee ? Gruß Tilmann
Auch wenn du in 'Dritte' einen String der Länge 1 erzeugt hast, ist es immer noch ein String. Und für einen String macht es nun mal keinen Sinn mit einer Zahl verglichen zu werden. Das eine ist eine Zeichenkette (auch wenn die nur 1 Zeichen lang ist) und das andere ist eine Zahl. Richte dein Augenmerk in der BASCOM Hilfe mal auf die Funktion ASC
Hallo, habe es selbst herausgefunden. Und zwar mittels Overlay. Da geil erklärt: [[http://www.rn-wissen.de/index.php/Bascom_Strings_und_Bytes]] Dim eingangsstring_byte(16) As Byte At eingangsstring Overlay If eingangsstring_byte(3) > 47 And eingangsstring_byte(3) < 57 Then Dritte_ist_zahl = 1 End If Scheint zu gehen, jedenfalls compiliert es. ___________________________________________________________ Nach dieser Erklärung habe ich "Overlay" verstanden: "Was auch gut geht ist, zwei Arrays anzulegen mit der gleichen Adresse (Overlay). Dann kannst Du z.B. einen String und ein Byte-Array "aufeinanderlegen". Wenn Du dann auf ein Zeichen im String zugreifst, hast Du ein "A" und wenn Du die gleiche Stelle als Byte liest, hast Du 65. Also: DIM EinString as String * 10 DIM EinPaarByte(10) as Byte at EinString Overlay" ___________________________________________________________ Gruß Tilmann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.