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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.