Die aber letztendlich Dir bei der weiteren Wartung des Projekts wieder zu Gute kommt. Sich also insgesamt dann doch wieder lohnt.
Jan
Moderator: Moderatoren
Die aber letztendlich Dir bei der weiteren Wartung des Projekts wieder zu Gute kommt. Sich also insgesamt dann doch wieder lohnt.
Gruss CarloPrinzipiell sind SAVE TO/RESTORE FROM mit großer Vorsicht zu genießen, da es keine Mechanismen gibt, die vor Kollisionen im Netz schützen. Die muss man selbst bauen. Tabellen, INIs, XML-Dateien oder ähnliche Verfahren sind meistens sinnvoller. Aber, ich weiß - das sagt sich leicht.
Code: Alles auswählen
aTmp := SymbolInfo( MEMVAR_PRIVATE )
FOR nCnt1 := 1 to Len( aTmp )
lError := .F.
bErrBlock := ErrorBlock( { | o | Break( o ) } )
BEGIN SEQUENCE
cSymbol := aTmp[nCnt1,1]
cSymMem := "MEMVAR->" + cSymbol
uValue := Var2Bin( cSymMem )
RECOVER
lError := .T.
ENDSEQUENCE
ErrorBlock( bErrBlock )
* If lError
AAdd( aLocal , { cSymbol , aTmp[nCnt1,2] } )
&( cSymMem ) := NIL
ENDIF
NEXT nCnt1
wenn Alaska das extra in die Hilfe schreibt muss das was bedeuten ...In der dritten Spalte befinden sich logische Werte.
Der Wert .T. (wahr) bedeutet, daß die entsprechende PRIVATE Variable zur Zeit der Ausführung von SymbolInfo() sichtbar ist.
Im Fall von .F. (falsch) ist die Variable durch eine andere PRIVATE Variable gleichen Namens "überdeckt" und nicht sichtbar.
da du die nicht weiter auswertest oder ins Array aufnimmst sind die wohl nur aus Debug Zwecken vorhanden.DelUser01 hat geschrieben: ↑So, 30. Jul 2017 1:19Ich kann heute nicht mehr sagen warum ich die Variablen mit VAR2BIN prüfe.Code: Alles auswählen
cSymMem := "MEMVAR->" + cSymbol uValue := Var2Bin( cSymMem )
womit der Code dann auch nur in der DEBUG Version verwendet wird#IFDEF DEBUG
...
#ENDIF
Code: Alles auswählen
uValue := Var2Bin( cSymMem )
Habe ich überprüft, die betroffene Variable wird nur in dem PRogrammabschnitt Privat angelegt und verwendet.