Bascom - Auslesen von Variablen -> Zu diesen Inhalt springen

OP #3282304
Ich benutze Bascom seit einiger Zeit, aber ich habe trotzdem mal eine 
Frage.
Ich habe eine Variable und möchte aber nicht zu diesen Label springen 
sondern zu diesen welches in der Variable steht.

Dim Test As String * 1
Test = "A"
Goto Test

Ich möchte dabei nicht zu dem Label Test sondern zu A.
Kann mir da einer helfen?
Vielen Dank im Voraus!
#3282317
Es gibt Programmkonstrukte, die sind seit Anbeginn der Zeitrechnung 
dafür bekannt, Unheil und Verderben zu bringen. "Calculated gotos" 
gehören dazu. Allerdings weiß ich gar nicht, ob Basic bzw. Bascom das 
kennt. Hoffentlich nicht.

Lesbarer wäre sowas in der Art:
if Test="A" then goto A
if Test="B" then goto B

UNd richtig gut wird es, wenn du das auch noch ohne goto hinbekommst.

Syntaxfehler bitte selber korrigieren, ich 'habe gar kein Bascom...

Oliver
Gast #3282363
> Ich benutze Bascom seit einiger Zeit, aber ich habe trotzdem mal
> eine Frage.
> Ich habe eine Variable und möchte aber nicht zu diesen Label springen
> sondern zu diesen welches in der Variable steht.
Welches Label? Eine Variable und ein Label sind zwei grundverschiedene 
Sachen. Eine Variable ist einfach gesagt ein Speicherort, der Daten 
aufnemen kann. Ein Label kennzeichnet nur die Adresse einer bestimmten 
Programm- oder Datenstelle und versieht sie mit einem Namen (eben einem 
Label).

> Dim Test As String * 1
> Test = "A"
> Goto Test
Das wird nicht funktionieren, weil du kein Label festgelegt hast.
Dein "Test" ist hier eine Variable.
Und "A" ist ein ASCII-Zeichen, welches in einer Stringvariablen steht.
Anspringen kannst du aber nur eine Stelle im Programm. Ein ASCII-Zeichen 
ist ja nicht ausführbar.

> Ich möchte dabei nicht zu dem Label Test sondern zu A.
> Kann mir da einer helfen?
> Vielen Dank im Voraus!

Kann aber auch sein, ich stehe auf dem Schlauch und du meinst was ganz 
anderes...
#3282417
Hannes Lux schrieb:
> Sowas hat der AVR sogar im ASM-Befehlssatz (ijmp, icall).

Na ja, jeder anständige Prozessor hat sowas in der Art in seinem 
Befehlssatz, und noch viel mehr davon. Und weil das so ist, haben schon 
die allerersten Programmierer der Menschheitsgeschichte angefangen, 
Hochsprachen zu entwickeln, um von solchen Kontruktionen verschont zu 
bleiben.

Oliver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.