Warum verhält sich Bascom so komisch??

Gast #2870138
Lesenswert?

Hallo,

ich sitze nun 2 Tage dran und komme einfach nicht weiter ;(

Dim Befehlspeich01 As String * 9
Dim Befehl01 As String * 3
Dim Befehl01aus As Byte
Dim Befehl02aus As Byte
Dim Befehl03aus As Byte
Dim Befehl04aus As Byte



Befehlspeich01 = "12345678"

Befehl01 = Mid(befehlspeich01 , 1 , 2)
Befehl01aus = Val(befehl01)
Befehl01 = Mid(befehlspeich01 , 3 , 4)
Befehl02aus = Val(befehl01)
Befehl01 = Mid(befehlspeich01 , 5 , 6)
Befehl03aus = Val(befehl01)
Befehl01 = Mid(befehlspeich01 , 7 , 8)
Befehl04aus = Val(befehl01)
Print  Befehl01aus ; Befehl02aus ; Befehl03aus ; Befehl04aus


ich erwarte eigendlich, das in den variablen folgendes steht:

befehl01aus=12
befehl02aus=34
befehl03aus=56
befehl04aus=78

ABER in den variablen steht folgendes:

befehl01aus=12
befehl02aus=128
befehl03aus=46
befehl04aus=78

ich verstehe einfach nicht warum ;( kann mir jemand helfen??
Gast #2870154
Lesenswert?

nein das programm ist deutlich länger insgesamt 4kb groß aber das würde 
nur verwirren hatte nur das gepostet was nicht funktioniert.

da ich noch nie die stacks geändert habe weiss ich auch nicht was bascom 
vorgibt.
Gast #2870161
Lesenswert?

Schnapp dir ne Befehlsreferenz.

Mid ( String, Start, Länge )

Bei >= 3 Als Länge kommst du in den Überlauf des Byte Datentyps, 
deswegen ist es nicht so einfach zu erkennen durch die Werte, dass du 
einfach zuviele Zeichen nimmst bei Mid()
#2870164
Lesenswert?

Stefan schrieb:

> nein das programm ist deutlich länger insgesamt 4kb groß aber das würde
> nur verwirren hatte nur das gepostet was nicht funktioniert.
>
> da ich noch nie die stacks geändert habe weiss ich auch nicht was bascom
> vorgibt.

Wenn Es solche Probleme gibt, ist es das beste, man kopiert die
kritischen Zeilen und schreibt damit ein neues Programm. Dann sieht
man genau, ob es an diesen Zeilen oder vielleicht am Umfeld liegt.
Gruss
Harald
Gast #2870165
Lesenswert?

DANKE DANKE DANKE DANKE DANKE !!!!!!!!!!!!


Ihr seit so klasse :)

ich dachte schon ich werde bekloppt, aber dann habe ich den Befehl 
einfach falsch verstanden und dachte die zweite Zahl gibt das Ende und 
nicht die Anzahl der Zeichen an :)


Viele Dank und ein schönes Wochende :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren