Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 18.05.2005, 17:43 Titel: Indirection |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.05.2005, 18:14 Titel: |
|
|
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 |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 18.05.2005, 18:15 Titel: |
|
|
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 |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 18.05.2005, 18:17 Titel: |
|
|
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!  |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 18.05.2005, 18:32 Titel: |
|
|
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 |
|
 |
Paul aka ICC, HV-Freak
Anmeldungsdatum: 11.09.2004 Beiträge: 588 Wohnort: Uelzen
|
Verfasst am: 18.05.2005, 19:15 Titel: |
|
|
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 |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 19.05.2005, 15:46 Titel: |
|
|
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:
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 |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 19.05.2005, 16:54 Titel: |
|
|
Hilfe?! Ich versteh nur bahnhof... Kannst du mir das etwas näher erklären (die befehle und so...) |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.05.2005, 18:10 Titel: |
|
|
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.
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:
Zeile 3 setzt den Zeiger wieder auf's QuickBASIC-Segment.
Soo, ich hoffe es ist klar und alles war richtig
jb |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 19.05.2005, 20:48 Titel: |
|
|
@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!  |
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 19.05.2005, 21:37 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 19.05.2005, 22:02 Titel: |
|
|
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 |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 19.05.2005, 22:26 Titel: |
|
|
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 |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 19.05.2005, 22:35 Titel: |
|
|
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 |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 20.05.2005, 14:47 Titel: |
|
|
geht nur bei Prozedurdeklarationen, die einen benutzerdefinierten Typ enthalten,
der aber erst später im Programm definiert wird.
jb |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 20.05.2005, 20:58 Titel: |
|
|
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!  |
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  |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 20.05.2005, 21:53 Titel: |
|
|
Auch egal
Wenns geht,dann programmier deine Software halt auf nem Taschenrechner
oder such dir nen Emulator für den PC  _________________ 'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 21.05.2005, 12:46 Titel: |
|
|
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 |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 21.05.2005, 15:53 Titel: |
|
|
verschiedenstes. |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 21.05.2005, 19:56 Titel: |
|
|
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 |
|
 |
|