Variablen auf Ausgangsstatus zurück setzen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
NeoRon
Beiträge: 67
Registriert: 22.03.2013 18:56

Variablen auf Ausgangsstatus zurück setzen

Beitrag von NeoRon »

Hallo PureBasic Community!

wie kann ich denn die Variablen auf den Anfangstaus des Programms zurück setzen?

mfg
NeoRon
The World is Cyber
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Variablen auf Ausgangsstatus zurück setzen

Beitrag von Kiffi »

Code: Alles auswählen

Procedure InitVars()
 myVar1 = 345
 myVar2 = 678
 [...]
EndProcedure

; Programmstart
InitVars()
[...]

; irgendwann mal zurücksetzen der Variablen
InitVars()
[...]
Grüße ... Kiffi
a²+b²=mc²
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: Variablen auf Ausgangsstatus zurück setzen

Beitrag von ts-soft »

Code: Alles auswählen

RunProgram(ProgramFilename())
End
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: Variablen auf Ausgangsstatus zurück setzen

Beitrag von NicTheQuick »

Am Anfang eines Programms sind bei PB alle Variablen 0 bzw. alle Stringvariablen enthalten leere Strings. Also musst du sie alle von Hand zurück setzen.
Benutzeravatar
NeoRon
Beiträge: 67
Registriert: 22.03.2013 18:56

Re: Variablen auf Ausgangsstatus zurück setzen

Beitrag von NeoRon »

Irgendwie setzt er sie nicht zurück wärend des laufenden programms.
Liegt das weil sie globalisiert sind meine variablen?

grüße
The World is Cyber
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: Variablen auf Ausgangsstatus zurück setzen

Beitrag von NicTheQuick »

Da wir keine Hellseher sind, solltest du uns lieber mal deinen Code zeigen.
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: Variablen auf Ausgangsstatus zurück setzen

Beitrag von ts-soft »

NicTheQuick hat geschrieben:alle Stringvariablen enthalten leere Strings. Also musst du sie alle von Hand zurück setzen.
Das ist "GottSeiDank" nicht so ganz richtig :wink:

Code: Alles auswählen

EnableExplicit

Define a.s
Define b.s = ""

Debug @a
Debug @b
Strings lassen sich nicht auf uninitialisiert zurücksetzen!
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: Variablen auf Ausgangsstatus zurück setzen

Beitrag von NicTheQuick »

Jaja, das weiß ich auch. Aber ich denke für einen Anfänger war die Antwort passend.

Im übrigen geht auch das hier: ^^

Code: Alles auswählen

EnableExplicit

Define a.s
Define b.s = a

Debug @a
Debug @b
Benutzeravatar
NeoRon
Beiträge: 67
Registriert: 22.03.2013 18:56

Re: Variablen auf Ausgangsstatus zurück setzen

Beitrag von NeoRon »

Hey,

habs hinbekommen.

hatte bei manchen Variablen keinen Wert vergeben(das war bei denen die ich auf null lassen wollte) also hat er immer den Wert im laufenden Programm den ihm zugewiesen worden ist behalten.
Hab die Variabeln jetzt in einer prozedur untergebracht und ihnen alle Werte zugewiesen, sprich den Wert 0 bei mir und bei Strings das "" , wenn ich die aufrufen lasse vegibt er neu meine angegebenen Anfangswerte.

Danke!

Grüße NeoRon
The World is Cyber
Antworten