KomendeDaten muss ein INT enthalten (in String Format). Falls KomendeDaten ein Punkt hat oder irgendwas wo Java denkt KomendeDaten ist kein INT, dann, in diesem Fall, umwandelt Java KomendeDaten zu ein Doppel. Versuche:
B4X:
Dim KomendeDaten As String
Dim OUTPUT1 As String
Dim myInt as Int = KomendeDaten
OUTPUT1 = Bit.ToBinaryString(myInt)
sowas wie Val(String) oder KomendeDaten.ToInt wäre toll oder (Int)KomendeDaten oder =Int(KomendeDaten)
Das Val in VB6 war sehr gut, mini Funktionen die man immer braucht sollten keine Fehler werfen. Sowas wie "AX" wurde einfach als 0 zurück gegeben.
Zudem hatte VB6 IsNumeric(..)
Eine automatische Umwandlung ist nicht gut, wenn dann muss sowas optional sein.
Hat auch B4X (IsNumber). Nur, IsNumber can auch double sein und wuerde in diesem fall nicht helfen.
[sarcasm]
Ich finde es blöde das VB6 keine iOS, Android, Linux, MacOS, embedded Programme herstellen kann.
[/sarcasm]
Kleiner Tipp am Rande. Du solltest Daten vor Umwandlung Grundsätzlich immer auf Gültigkeit prüfen. Sonst kann es zu bösen Fehlern führen. Ich weiß jetzt nicht wie dein Code reagiert wenn "kommendeDaten" = nix ist.
Eine mid-Anweisung in VB mit einen Leer-String führt nämlich auch zu ein Fehler. Nur mal so als Beispiel.
Auf die Kleinigkeiten kommt es an Ich habe MID geschrieben. OHNE $
In VB 2010 oder höher gibt es den String-Befehl nicht mehr. Da sind auch die Befehle(genauer gesagt Funktionen) Left$, Right$, und String$ weggefallen. Ich musste mir dafür eine extra DLL schreiben.
vb6.0 was viel genügsamer und hat vieles verziehen.
Die letzte "Fremdsystem" was man mit VB programmieren konnte, was ein Plug-in in VB6.0 für VB-CE. Hab ich auch mal mit gecodet. Für einen Pocket-PC (Das waren die Vorgänger von Handy ohne Telefonieren )
In VB 2010 oder höher gibt es den String-Befehl nicht mehr. Da sind auch die Befehle(genauer gesagt Funktionen) Left$, Right$, und String$ weggefallen. Ich musste mir dafür eine extra DLL schreiben.
Weiß ich. Aber diese Namespace sind zu überlastet. Für 3 kleine Funktionen den gesamten Namespace einzubinden fand ich übertrieben. Also habe ich einfach eine Dll Geschrieben die eingebunden und da sind alle Funktionen (String und spezielle Ersetzungsfunktionen) und Frames (Anständige Msg-Box z.b) drin, die ich dauernd aufrufe. Das DLL-chen ist dabei nicht mal 50 k groß.
Das geht auch, aber der Parameter kann dann ein Objekt sein.
Aber allgemein waren viele MS Funktionen sehr kritisch und Fehler anfällig
das man sich oft eine eigene Funktion drum herum schreiben mußte die nicht für alles nervt.
ok ich hab nach geguckt wieso ich ein Fehler habe. Ich übergebe an die Funktion so gut wie nie ein echten Startwert sondern immer eine Variable (int). Und wenn die kleiner 0 ist, knallt es.
ok ich hab nach geguckt wieso ich ein Fehler habe. Ich übergebe an die Funktion so gut wie nie ein echten Startwert sondern immer eine Variable (int). Und wenn die kleiner 0 ist, knallt es.
Ja diese Meldung finde ich noch ok weil ein String ja nur 1-X sein kann.
Hätte man den Wert seitens MS korrigiert auf Min-Max wäre es manipulation das hätte ich dann nicht gut heissen können.
Allerdings wäre ja eine Debug Meldung als Warnung besser als eine Fehler Meldung die das Programm ohne Fehlerbehandlung ja abkacken läßt.