Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Indirection
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 18.05.2005, 17:43    Titel: Indirection Antworten mit Zitat

SUCHE SCHNELLST MÖGLICHE HILFE!!!!
Also, wie schreibe ich ein programm, welches einen indirection string benutzt? Gibts sowas überhaupt in QB??

Beispiel:
#.........steht für den indirection befehl!
Code:

x="HALLO"
#x=45
Print HALLO

Danach sollte eigentlich in HALLO die Zahl 45 sein....

HILFE!!![/quote]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 18.05.2005, 18:14    Titel: Antworten mit Zitat

geht nicht.

du müsstest hallo in eine Zahl umformen und als Array-Index verwenden, sowas wie dus da beschreibst geht nicht.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 18.05.2005, 18:15    Titel: Antworten mit Zitat

Also wen ich das richtig verstehe dann willst du einen String in eine Zahl umwandeln. Ich würde dir emphelen HEX$ zu verwenden. Weiter unten müsste noch mein Thread dazu sein´-
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 18.05.2005, 18:17    Titel: Antworten mit Zitat

nein nein, ich will, dass aus dem string in x ein Variablenname wird, in dem ich dann 45 speichere.



MENSCH! Lernt TI-BASIC.... Dann wäre alles so viel einfacher! lachen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 18.05.2005, 18:32    Titel: Antworten mit Zitat

was er will ist, einen String der in einer Variable steht als Variablenname zu benutzen. bei php ginge das zB mit eval():

$string="Hallo";
eval("$".$string."='Guten morgen!'");
echo $Hallo; //Ausgabe: Guten morgen!
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Paul
aka ICC, HV-Freak


Anmeldungsdatum: 11.09.2004
Beiträge: 588
Wohnort: Uelzen

BeitragVerfasst am: 18.05.2005, 19:15    Titel: Antworten mit Zitat

ich hab mal ne scriptsprache in qb gecodet
die variablennamen waren in einem array und die werte der variablen in einem anderen array

hat ganz gut gefunzt, das "virtuelle variablensystem"
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 19.05.2005, 15:46    Titel: Antworten mit Zitat

Du könntest direkt auf den Speicher einfach direkt zugreifen, und den Wert 45 an die Adresse von x schreiben...:

Code:
DIM x AS STRING
x = "HALLO"
PRINT x

DEF SEG=VARSEG(x)
POKE VARPTR(x), 45
DEF SEG

PRINT ASC(x)
PRINT x


Das wäre das ergebnis:
Code:
HALLO
45
-ALLO


Allerdings wird x dann immer noch als Stringvariable behandelt.

Theorethisch muss ja irgendwo stehen, welche Variable welchen Typ hat, bzw welche Adresse sie hat.
Wenn du rausfindest, an welcher Stelle im Speicher das steht, dürfte es recht einfach sein, das umzusetzen. => Google
Die Frage ist, ob es dann noch zur EXE compilerbar ist...
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 19.05.2005, 16:54    Titel: Antworten mit Zitat

Hilfe?! Ich versteh nur bahnhof... Kannst du mir das etwas näher erklären (die befehle und so...)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.05.2005, 18:10    Titel: Antworten mit Zitat

Dir geht es wahrscheinlich um diese Zeilen:
Code:

1 DEF SEG=VARSEG(x)
2 POKE VARPTR(x), 45
3 DEF SEG

Hab sie jetzt mal zur besseren Erklärung bennant. lächeln

Aaalso: In Zeile 1 wird das Segment gestellt, und zwar auf das Segment
der Variable x. Daher der Befehl VARSEG(x).

So, in der zweiten Zeile wird zuerst die genaue Position im Segment der Variablen x ermittelt,
das geschieht mit einem sogenannten Pointer, daher
heißt der Befehl VARPTR.

Wenn dann die genaue Adresse ermittelt worden ist, wird ein Wert, hier 45,
an diese Stelle geschrieben.
Das geschieht mit POKE.
Hier die Syntax:
Code:

POKE Adresse, Wert


Zeile 3 setzt den Zeiger wieder auf's QuickBASIC-Segment.

Soo, ich hoffe es ist klar und alles war richtig zwinkern

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 19.05.2005, 20:48    Titel: Antworten mit Zitat

@psygate, das was du vorhast geht in QBasic nicht.
Auch nicht mit tricks, du kannst einem Inhalt einer String Variable keinen wert zuweisen.

d.h. Dynamische Variablen in dieser Form sind nicht Möglich.

psygate hat Folgendes geschrieben:
MENSCH! Lernt TI-BASIC.... Dann wäre alles so viel einfacher! lachen


Na dann machs doch damit,wenns einfacher ist.
_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 19.05.2005, 21:37    Titel: Antworten mit Zitat

Als einzige Lösung wäre wohl eine externe .BAS-Datei zu denken, die
vom Programm erstellt wird, und dann aufgerufen wird...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.05.2005, 22:02    Titel: Antworten mit Zitat

oder eben den String in eine einzigartige zahl umzurechnen und die dann als Arrayindex benutzen..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 19.05.2005, 22:26    Titel: Antworten mit Zitat

Gibts nicht die Möglichkeit, eine Variable AS ANY zu deklarieren, oder geht des nur bei SUBs?

DIM x AS ANY

DECLARE SUB foo (param AS ANY)
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 19.05.2005, 22:35    Titel: Antworten mit Zitat

nein, du kannst nur AS deineigenertyp erstellen.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 20.05.2005, 14:47    Titel: Antworten mit Zitat

Code:

AS Any

geht nur bei Prozedurdeklarationen, die einen benutzerdefinierten Typ enthalten,
der aber erst später im Programm definiert wird.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 20.05.2005, 20:58    Titel: Antworten mit Zitat

Stephan hat Folgendes geschrieben:
@psygate, das was du vorhast geht in QBasic nicht.
Auch nicht mit tricks, du kannst einem Inhalt einer String Variable keinen wert zuweisen.

d.h. Dynamische Variablen in dieser Form sind nicht Möglich.

psygate hat Folgendes geschrieben:
MENSCH! Lernt TI-BASIC.... Dann wäre alles so viel einfacher! lachen


Na dann machs doch damit,wenns einfacher ist.


*hüstel* das ist eine Programmiersprache von Texas Instruments, eigensentworfen, basierend auf microsofts BASIC, für die TASCHENRECHNER von TI, welche mit "höheren" Systemen arbeiten. Darunter: Voyage-200, TI-89 Titanium, Ti-92 Plus lachen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 20.05.2005, 21:53    Titel: Antworten mit Zitat

Auch egal lächeln

Wenns geht,dann programmier deine Software halt auf nem Taschenrechner grinsen
oder such dir nen Emulator für den PC durchgeknallt
_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 21.05.2005, 12:46    Titel: Antworten mit Zitat

Die Frage sollte eigentlich immer sein, wozu du den Datentyp umändern musst. Wenn wir das wissen, können wir evtl auch Alternativen anbieten...
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 21.05.2005, 15:53    Titel: Antworten mit Zitat

verschiedenstes.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 21.05.2005, 19:56    Titel: Antworten mit Zitat

Ich bin jetzt seit meinem 9. Lebensjahr Hobbyprogrammierer (zugegeben, damals noch ein ZIEMLICH mieser...), aber mit ist noch keine Situation untergekommen, bei der ich den Datentyp hätte ändern müssen.

Wenn es bei dir mehrere Situationen sind, dann poste doch zumindest eine, vllt lässt sich die Lösung für dieses Problem ja auf andere Probleme übertragen...?
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz