Variable setzen, löschen und überprüfen [X]

Anfängerfragen zum Programmieren mit PureBasic.
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Variable setzen, löschen und überprüfen [X]

Beitrag von sobi »

Hallo,

in PHP gibt es die Funktionen "isset()" und "unset()" mit denen ich überpüfen kann, ob eine Variable existiert oder eine Variable löschen kann. Gibt es solche oder ähnliche Funktionen in PB auch?

Kann ich in einer IF - Schleife zwei Argumente gleichzeitig überprüfen? - Irgendwie hat es mit "AND" noch nicht funktioniert.

Liebe Grüße und allen ein schönes Wochenende, :allright:

Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Natürlich geht das mit AND.

Code: Alles auswählen

a=1
b=1

if a=1 and b=1 
debug "Jawohl"
Endif 

und ob eine Variable gesetzt ist lässt sich einfach durch das prüfen ihres
Inhalts testen. Denn in Basic werden Variablen bei gebrauch gesetzt.


Code: Alles auswählen

a=1

if a=0
debug "leer/nicht gesetzt"
else
debug "Die hats in sich"
endif 

if b=0
debug "leer/nicht gesetzt"
else
debug "Die hats in sich"
endif 


Oder hatte ich dich falsch verstanden ?
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag von sobi »

Hroudtwolf hat geschrieben:Natürlich geht das mit AND.
Prima, dann stimmt was in meinem Quelltext nicht! :)
Hroudtwolf hat geschrieben: und ob eine Variable gesetzt ist lässt sich einfach durch das prüfen ihres
Inhalts testen. Denn in Basic werden Variablen bei gebrauch gesetzt.
Okay, das macht Sinn, danke für die Hinweise.
Hroudtwolf hat geschrieben: Oder hatte ich dich falsch verstanden ?
Nein hast du nicht.
Was noch bleibt ist die Frage ob es möglich ist eine Variable wieder zu "löschen" - *erinnere* irgendwo habe ich das mal gesehen, dass Variablen wieder "freigegeben" werden können.


LG


Simon
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
Rob
Shadow Admin
Beiträge: 258
Registriert: 26.08.2004 01:39
Kontaktdaten:

Beitrag von Rob »

Nein, das geht leider nicht. Du kannst mit PB nicht unterscheiden, ob eine Variable nicht existiert oder ob sie nur eine 0 enthält.

Sagst du

Code: Alles auswählen

If a
  Debug "Existiert"
Else
  Debug "Existiert nicht"
EndIf
prüfst du nur, ob die Variable a null ist oder nicht. Wenn sie vorher nicht existierte, hast du sie spätestens mit ihrer Erwähnung in der If-Abfrage erstellt (und automatisch mit 0 initialisiert). Existierte sie aber vorher schon, war aber nur 0, gibts das gleiche Ergebnis.

Auch das löschen von Variablen funktioniert nicht.
Build a man a fire and he's warm for a day. Set a man on fire and he's warm for the rest of his life
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

setze sie auf null

Code: Alles auswählen

a=#NULL
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

Hroudtwolf hat geschrieben:setze sie auf null

Code: Alles auswählen

a=#NULL
Damit löscht du sie aber sicher trotzdem nicht, sondern setzt sie genauso auf 0. Wie Rob schon schrieb... :wink:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

löschen von Variablen

Beitrag von unix »

Man kann Variablen vielleicht nich löschen aber man kann anderes machen:
kein text in Stringvariable : [c]x = ""[/c]
oder mit wordvariable : [c]x = 0[/c]

du kannst eine Variable die du nicht mehr brauchst zum beispiel beim laden von Texten wieder verwenden, mit überschreiben:

Code: Alles auswählen

OpenFile(0,"Data\Vd.tx")                 ;Datei laden
    Repeat                                       ;Beginn einer Schleife
      add$ = ReadString()                 ;Stringvariable"add$" = Geladene 
                                                      Zeile aus der Datei  (überschreiben)
    AddGadgetItem(3,-1,add$)          ;Text zu einen Gadget 3 hinzufügen
                                                       (an neuer Stelle)
    Until add$ = ""                            ;Bis Inhalt = "" (nichts) wiederholen
CloseFile(0)                                    ;Schließen der Datei
[EDIT:Rob - Code-Tags gesetzt]
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Genau das sagte ich bereits.
Antworten