Variablen reseten
- Purebasium
- Beiträge: 74
- Registriert: 05.02.2014 22:08
- Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte - Wohnort: Mars, Kraterstr. 57b, Apartment 7
Variablen reseten
Gibt es eine Möglichkeit, mitten im Programm alle bisher definierten Variablen zu reseten, ohne das man alle einzeln auf null stellt?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Albert Einstein
Re: Variablen reseten
Du kannst deine einmalige Variablenliste in einer Include einfügen. Diese Include-Datei rufst du erneut auf, wenn du sie resetten möchtest.
- Purebasium
- Beiträge: 74
- Registriert: 05.02.2014 22:08
- Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte - Wohnort: Mars, Kraterstr. 57b, Apartment 7
Re: Variablen reseten
es gibt ja unter Werkzeuge->variablenliste eine liste aller variablen.
Kann man die irgendwie speichern/kopieren?
Kann man die irgendwie speichern/kopieren?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Albert Einstein
Re: Variablen reseten
Nein direkt nicht. Du kannst natürlich ein Werkzeug erstellen und automatisiert vor dem Kompilieren die Variablen ermitteln und resetten, aber das ist viel zu aufwändig.
Die einfachste Möglichkeit ist eine separate Include-Datei für deine Variablen.
Die einfachste Möglichkeit ist eine separate Include-Datei für deine Variablen.
- Purebasium
- Beiträge: 74
- Registriert: 05.02.2014 22:08
- Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte - Wohnort: Mars, Kraterstr. 57b, Apartment 7
Re: Variablen reseten
ok
(Bin schon beim abschreiben der variablen
)
(Bin schon beim abschreiben der variablen
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Albert Einstein
Re: Variablen reseten
Wenn du EnableExplicit verwendest und oben eine Variablenliste besitzt, dann musst du nichts abschreiben, sondern nur auslagern.
- NicTheQuick
- Ein Admin
- Beiträge: 8837
- 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 reseten
Eine zweite Möglichkeit wäre eine Macro. Einfach in dem Makro alle Variablen mit Initialwert auflisten und dann an beliebigen Stellen aufrufen. Das braucht nicht unbedingt dann eine extra Include.
Re: Variablen reseten
Code: Alles auswählen
;1. Eine Struktur mit allen Variablen
Structure vTable
EinInteger.i
EinByte.b
EinString.s
;...
EndStructure
;2a. Wir können alle Variablen im Programm speichern
DataSection
variablen:
Data.i 1337
Data.b 23
Data.i @"Hallo Welt!"
EndDataSection
*versionA.vTable = ?variablen
;2b oder Allozieren und zuweisen. Verschwendet unnötig Speicher!
*versionB.vTable = AllocateMemory(SizeOf(vTable))
*versionB\EinInteger = 0815
*versionB\EinByte = 42
*versionB\EinString = "Stringtheorie!"
;3. beide Versionen lassen sich aber gleich setzen
*versionA\EinInteger = 1234567
*versionB\EinString = "PureBasic!"
;4. und aufrufen
Debug *versionA\EinString
Debug *versionB\EinByte
;5. alle Werte auf einen bestimmten Wert setzen geht auch:
FillMemory(*versionA, SizeOf(vTable), 23)
Debug *versionA\EinByte ; Vorsicht mit Strings!!!
FillMemory(*versionB, SizeOf(vTable), 42)
Debug *versionB\EinByte ; Das geht sonst schief!
;6. und auch problemlos Speichern.
file = OpenFile(-1, GetCurrentDirectory()+"vTable.dat")
If IsFile(file)
WriteData(file, *versionA, SizeOf(vTable))
CloseFile(file)
EndIf
;7. und auch problemlos wieder Laden.
file = OpenFile(-1, GetCurrentDirectory()+"vTable.dat")
If IsFile(file)
ReadData(file, *versionB, SizeOf(vTable))
CloseFile(file)
EndIf
;8. man kann auch eine Variablen-Liste verdoppeln
*versionC.vTable = 0
CopyMemory(*versionA, *versionC, SizeOf(vTable))
;9. und sogar vergleichen!
Debug CompareMemory(*versionA, *versionC, SizeOf(vTable))
;gleiche Strings, aber mit unterschiedlicher Adresse sind verschieden :/
;man kann aber Variable für Variable vergleichen!
- 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 reseten
@_sivizius
CurrentDirectory, ist das Directory, welches vom starter des Processes übergeben wurde, also nicht unbedingt das Verzeichnis der Exe!
Bei Aufruf per Shell wird im allg. kein "Ausführungsverzeichnis (CurrentDir)" übergeben, so das dies meist auf den Systemordner verweist.
GetCurrentDirectory() ist nur sinnvoll, wenn man den Ordner selber per SetCurrentDirectory() gesetzt hat.
Code: Alles auswählen
GetCurrentDirectory() <> GetPathPart(ProgramFilename())Bei Aufruf per Shell wird im allg. kein "Ausführungsverzeichnis (CurrentDir)" übergeben, so das dies meist auf den Systemordner verweist.
GetCurrentDirectory() ist nur sinnvoll, wenn man den Ordner selber per SetCurrentDirectory() gesetzt hat.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Variablen reseten
oder man es eben in der IDE ausführt und vorher irgendwo gespeichert hat.
In der shell ist auch das Debug nicht mehr so sinnvoll :P.
Aber das ist hier nicht der Punkt.
In der shell ist auch das Debug nicht mehr so sinnvoll :P.
Aber das ist hier nicht der Punkt.

