Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 18.08.2005, 10:55 Titel: String überprüfen auf Zeichenlänge sowie Integerwert |
|
|
Hallo!
Es gibt eine Stringvariable "Groesse$".
Folgende Eigenschaften sollte der Inhalt dieser Variable aufweißen:
1. Länge 3 (nicht kleiner nicht größer)
2. Nur Zahlen
3. Es sollte möglich sein 3x die 0 eingeben zu dürfen -> "000".
Bisdato hatte ich mir folgendes ausgedacht:
--
LOCATE 2,8 : INPUT "Grïsse:",Groesse$
IF LEN(Groesse$) <> 3 OR VAL(Groesse$) = 0 THEN
LOCATE 9,8 : PRINT "FEHLER"
END IF
--
Das Problem was ich hierbei habe ist, dass VAL den Stringwert in einen Integerwert
umwandelt und bei "000" ergibt dies nunmal als Integerwert 0 -> Fehler
Dem Benutzer sollte es aber gestattet sein als Größe 3x die Null einzugeben.
VAL erfüllt in diesem Zusammenhang das Abfangen von eingegebenen
Buchstaben oder Sonderzeichen.
Ich hoffe Ihr könnte mir bei meinem Problem weiterhelfen.
Vielen Dank bereits im Voraus für Eure Mühe.
Gruß
studio |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.08.2005, 11:27 Titel: |
|
|
Hallo
Du könntest auch nur Zahlentasten bei der Eingabe zulassen und warten bis dreimal eine solche gedrückt wurde.
Code: | LOCATE 2, 8
PRINT "Groesse: ";
FOR x = 0 TO 2
DO
t$ = INKEY$
LOOP WHILE t$ < "0" OR t$ > "9"
PRINT t$;
groesse$ = groesse$ + t$
NEXT |
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 18.08.2005, 11:33 Titel: |
|
|
Hi Skilltronic,
vielen Dank für Deine schnelle Antwort. Gibt es nicht eine andere Möglichkeit
mein IF-Konstrukt anders aufzubauen?
Vielen Dank im Voraus.
Gruß
studio |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 18.08.2005, 11:49 Titel: |
|
|
Überprüfe halt noch, wenn VAL(Groesse$) = 0 ist, ob 3 Nullen enthalten sind:
Code: |
IF VAL(Groesse$) = 0 AND Groesse$ <> "000" THEN
PRINT "Fehler!"
END IF
|
jb |
|
Nach oben |
|
 |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 18.08.2005, 12:13 Titel: |
|
|
Hallo jb,
vielen Dank für Deine Antwort ... das ist auch genau die Lösung die ich gesucht hatte.
Allerdings muss ich zu meinem Unvermögen schreiben, dass ich auf die selbe Idee bereits gekommen bin ... nur falsch angewendet bzw. an der falschen Position:
--
IF Groesse$ <> "000" AND LEN(Groesse$) <> 3 OR VAL(Groesse$) = 0 THEN
LOCATE 9,8 : PRINT "FEHLER"
END IF
--
Hier wird das AND in Verbindung mit der Länge gebracht und kann somit auch nicht funktionieren.
Vielen Dank für Eure Mühe.
Gruß
studio |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 18.08.2005, 20:53 Titel: |
|
|
Deswegen sollte man Bedingungen immer in Klammern schreiben, damit sie nicht mit den logischen Operatoren in Konflikt treten:
Code: | IF (Bedingung1) AND (Bedingung2) OR (edingung3) THEN... |
Wozu brauchst du denn eine solche Prüfung?
Klingt nach einem Berechnungsprogramm... stells doch bitte mal vor
Have a nice day
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
studio
Anmeldungsdatum: 08.08.2005 Beiträge: 34
|
Verfasst am: 19.08.2005, 09:13 Titel: |
|
|
Morgen!
@Dusky_Joe:
Danke für den Hinweis.
@Vorstellung:
Es geht hierbei um ein Inventurprogramm für den Schuhhandel. Dieses
Programm wird sich auf einem MDE Gerät wiederfinden. Eigentlich bin ich
im QBasic Bereich falsch angesiedelt, da das BHT sein eigenes Basic
Derivat mitbringt (BHT-Basic).
"Programmers Manual" - Vertreiberfirma:
Zitat: | The syntax of BHT-BASIC is as close as possible to that used in Microsoft BASIC (MS-BASIC) |
Einige Funktionen gibt es nicht und andere funktionieren ganz anders.
Daher muss ich einiges was Ihr mir an Ratschlägen mitteilt nochmals
entsprechend anpassen. Dennoch fühle ich mich hier im QBasic-Bereich
sehr wohl und werde mit Eurer Erlaubnis weitere Fragen stellen
Gruß
studio |
|
Nach oben |
|
 |
|