Variable via String ändern?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Milchshake
Beiträge: 166
Registriert: 30.01.2006 17:47
Wohnort: Zwischen dem Sessel und dem Computer

Variable via String ändern?

Beitrag von Milchshake »

Hi,
erstmals möchte ich mich für den Threattite entschuldigen, mir ist kein besserer eingefallen.
So nun zum eig, Problem - ich hoffe ich kann es euch Verständlich machen.
Ich will via einen String die Variable ändern, also wenn der StringName und der Variablenname gleich sind, soll sich die Variable gleich 1 sein.

Aber wofür überhaupt?
Ich programmiere grad ein Spiel und bin jetzt bei den Triggern angekommen. Für die Trigger
benutze ich eine eigene Liste - dementsprechend auch eine eigene Structur. Wenn ich jetzt einen Trigger der Liste hinzufüge, will ich nicht für jeden Trigger\Bezeichnung eine eigen If Anwendung schreiben.
Beispiel:

Code: Alles auswählen

If Trigger()\Bezeichnung = 1
  VariableB = 1
endif 
if Trigger()\Bezeichnung = 52
 VariableDF = 1
endif 
Ich hoffe meine Frage ist verständlich - bestenfalls auch Lösbar.
Greez Milchshake
Hab jetzt PB 4.02
Muhahaha!!!!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

verwende doch Arrays ?

Wenn das StringArray und VariableArray die gleichen Felder haben wir deine Variable 1

dann braust du nicht irgendwelche Namen vergleichen sonder einfach nur Indizes
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Und statt den Indizes kannst Du dann Konstanten verwenden, wodurch Du wieder Deine Namen hast.

Ansonsten wäre auch eine sog. Map bzw. Dictionary denkbar, nur gibt's das in PB leider nicht nativ. Irgendwann vielleicht... da könnte man dann als Index eine 32-Bit-Variable benutzen und diese mit 4 ASCII-Zeichen "benennen", also z.B. 'TEST' (wird durch die einfachen Anführungszeichen einfach in eine Long-Variable konvertiert). Das wäre dann schneller als wenn man einen String als Index nimmt (was aber auch möglich ist bei einer Map).
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

das mit dem Array sähe so aus:

Code: Alles auswählen

Flag( Trigger()\Bezeichnung ) = 1
ich verstehe jetzt auch nicht den sinn, warum zig variablen einen 1 wert bekommen sollen....

dafür hast du ja die Trigger-Liste, damit du nicht zig Variablen brauchst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten