mit Variablenname Variable-Inhalt ausgeben

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

mit Variablenname Variable-Inhalt ausgeben

Beitrag von marcelx »

Hallo zusammen,

mit Variablenname Variable-Inhalt ausgeben
ich möchte für eine Liste von Variables (zuerst vom Typ String) die Variablen ausgeben:
z.B. die 3 Variablen in der listVar.
Wie setze ich value?

Code: Alles auswählen

var0.s = "test0"
var1.s = "test1"
var2.s = "test2"

Dim listVar.s(2)
listVar(0) = "var0"
listVar(1) = "var1"
listVar(2) = "var2"

varName.s
value.s

For i=0 To ArraySize(listVar())
  varName = listVar(i)
  Debug varName+": "+ value
Next
Danke und Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von NicTheQuick »

Das geht nicht. Nach dem Kompilieren gibt es keine Variablennamen mehr. Folglich kann der Inhalt der Variable nicht mehr ausgelesen werden.

Außer du möchtest "Runtime"-Variablen nutzen.

Code: Alles auswählen

EnableExplicit

Define.s var0 = "test0", var1 = "test1", var2 = "test2"
Runtime var0, var1, var2

Define Dim listVar.s(2)
listVar(0) = "var0"
listVar(1) = "var1"
listVar(2) = "var2"

Define varName.s, value.s, i.i

For i = 0 To ArraySize(listVar())
	varName = listVar(i)
	value = GetRuntimeString(varName)
	Debug varName + ": " + value
Next 
Komischerweise ist var1 bei mir aber leer. Bei euch auch?
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von Pelagio »

Hallo marcelx,

ich weiß zwar nicht was der Hintergrund, die Logik deines Source sein soll aber wenn ich mir vorstelle für was ich es gebrauchen könnte, würde ich es wie folgt anstellen:

Code: Alles auswählen

NewMap Var.s()

AddMapElement (Var(), "var0")
AddMapElement (Var(), "var1")
AddMapElement (Var(), "var2")

Var("var0") = "test0"
Var("var1") = "test1"
Var("var2") = "test2"

ForEach  Var()
  Debug MapKey(Var()) + ": "+ Var()
Next
Aber vieleicht ist der Grund warum Du es brauchst auch einer den ich nicht erkenne,
dann halte dich an NicTheQuick der kennt sich aus.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
mhs
Beiträge: 224
Registriert: 11.01.2009 16:30
Wohnort: Graben
Kontaktdaten:

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von mhs »

NicTheQuick hat geschrieben:Komischerweise ist var1 bei mir aber leer. Bei euch auch?
Bei mir ist var1 nicht leer.
[13:26:39] [Debug] var0: test0
[13:26:39] [Debug] var1: test1
[13:26:39] [Debug] var2: test2
@marcelx: Schon mal über eine Map anstatt Variablen nachgedacht?
Zuletzt geändert von mhs am 26.01.2016 14:27, insgesamt 1-mal geändert.
Michael Hack

Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von ts-soft »

NicTheQuick hat geschrieben:Komischerweise ist var1 bei mir aber leer. Bei euch auch?
Nein, weder unter Windows noch unter Linux!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von NicTheQuick »

ts-soft hat geschrieben:
NicTheQuick hat geschrieben:Komischerweise ist var1 bei mir aber leer. Bei euch auch?
Nein, weder unter Windows noch unter Linux!
Ähm gut. Dann sollte ich vielleicht mal endlich von der beta 1 auf die Final wechseln. :lol:
Benutzeravatar
marcelx
Beiträge: 429
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von marcelx »

Danke für die Anregungen.

Der Sinn ist, dass ich in vorhandene Code von mir, Variable unterschiedliche Type habe (String, Array, ...)
Ich wollt ein Zustand meine Variable mit eine Procedure ausgeben.
Meine Idee war einfach eine Liste für jeden Procedure anzulegen und mit ein Ausgabe-Procedure auszugeben.

Mit GetRuntimeString oder NewMap (bevorzügt) ist für mich akzeptable.
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: mit Variablenname Variable-Inhalt ausgeben

Beitrag von NicTheQuick »

Die Debugger-Funktionalitäten reichen dir dafür nicht?
Antworten