Gibt es eine Möglichkeit zu prüfen, ob eine Variable existiert, ohne über BEGIN SEQUENCE zu gehen?
Also eine Funktion z.B. VarExists("xVar") liefert TRUE/FALSE
Funktion zur Prüfung ob eine Variable existiert
Moderator: Moderatoren
- klammerauf
- UDF-Programmierer
- Beiträge: 69
- Registriert: Do, 08. Feb 2007 14:16
- Wohnort: Karlsruhe
- Hat sich bedankt: 3 Mal
Funktion zur Prüfung ob eine Variable existiert
Exzessiver Codeblock Programmierer
--
Grüße
Sebastian
--
Grüße
Sebastian
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Funktion zur Prüfung ob eine Variable existiert
Type("cVarName") ermittelt, ob eine Variable <cVarName> als PUBLIC oder PRIVATE existiert. Wenn Type("cMeinDatum") als Antwort "U" liefert, existiert die Variable "cMeinDatum" als PRIVATE oder PUBLIC nicht. Mit ValType(cMeinDatum) (Achtung: ohne Anführungszeichen) bestimmst Du den Typ einer STATIC oder LOCAL, aber das scheitert, wenn es "cMeinDatum" überhaupt nicht gibt. Das kannst Du umgehen, indem Du "IF cMeinDatum == NIL" abfragst. Wenn das .T., liefert, existiert die Variable entweder nicht oder sie ist tatsächlich NIL, wobei dann keine Rolle spielte, ob als PRIVATE, PUBLIC oder LOCAL (aber es könnte dann sein, dass Du sie als LOCAL definiert hast, ohne sie zu typisieren bzw. ihr einen Initialwert zuzuordnen). Mit der Funktion SymbolInfo() kannst Du Dir eine Liste aller PRIVATEs und PUBLICs holen.
Herzlich,
Tom
Tom
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Funktion zur Prüfung ob eine Variable existiert
diese Funktion würde einen Quellcode Namen der Variable benötigen, diesen gibt es für MEMVARS,
nicht aber für LOCAL oder STATIC da sind das nur noch Speicheradressen (ohne Debugging Code).
Aus diesem Grunde muss man sich wohl sowas basteln.
nicht aber für LOCAL oder STATIC da sind das nur noch Speicheradressen (ohne Debugging Code).
Aus diesem Grunde muss man sich wohl sowas basteln.
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Funktion zur Prüfung ob eine Variable existiert
PUBLICs und PRIVATEs checke ich per isMemvar(). Was aber nur prüft ob die existiert, nicht ob die auch einen Wert hat.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: Funktion zur Prüfung ob eine Variable existiert
Es gibt zig Wege.
Ob aber eine LOCAL deklariert wurde, ohne dass eine Initialisierung vorgenommen wurde, lässt sich nur in einer SEQUENCE feststellen.
Ob aber eine LOCAL deklariert wurde, ohne dass eine Initialisierung vorgenommen wurde, lässt sich nur in einer SEQUENCE feststellen.
Herzlich,
Tom
Tom