Ich wollte ein paar Funktionen schreiben mit denen man Varriablen(Arrays eingeschlossen) in Dateinen abgespeichern kann und wieder aufgerufen kann.
Spoiler anzeigen
; #FUNCTION# ====================================================================================================================
; Name...........: VarRead
; Description ...: List Varriablen, welche voher mit VarWrite in einer Datei gespeichert wurden, aus
; Syntax.........: VarRead($ort[,$VarName])
; Parameters ....: $ort - Der Ziel Pfad
; $VarName - Name der Varriable
; Return values .: Success - Inhalt der Varriable oder ein Array welches alle Variablen und ihre Inhalte enthält
; Failure - -1
; Author ........: Ich
; Related .......: VarWrite
; ===============================================================================================================================
Func VarRead($Ort,$VarName = -175)
$Read = FileRead($ort)
If $Read = "" Then Return -1
If $VarName = -175 Then
$Read = StringSplit(StringReplace($Read,@lf,""),@cr)
For $i = 1 to $Read[0]
If $Read[$i] = "" Then
Dim $Var[$i][2]
$Var[0][0] = $i - 1
For $i = 1 to $Var[0][0]
$Var[$i][0] = $Read[$i]
$Var[$i][1] = StringReplace(StringReplace($Read[$i + $Var[0][0]+1],"62^7@cr54^1",@cr),"62^7@lf54^1",@lf)
next
Return $Var
Endif
next
Else
$Read = StringSplit(StringReplace($Read,@lf,""),@cr)
For $i = 1 to $Read[0]
If $Read[$i] = "" Then Return 0
If $Read[$i] = $VarName Then
For $i2 = $i to $Read[0]
If $Read[$i2] = "" Then exitloop
If $i2 = $Read[0] Then Return -1
next
Return StringReplace(StringReplace($Read[$i2 + $i],"62^7@cr54^1",@cr),"62^7@lf54^1",@lf)
Endif
next
EndIf
EndFunc ;==>VarRead
; #FUNCTION# ====================================================================================================================
; Name...........: VarWrite
; Description ...: Speichert Varriablen in eine Datei
; Syntax.........: VarWrite($Ort,$VarInhalt,$VarName)
; Parameters ....: $ort - Der Ziel Pfad
; $VarInhalt - Der Inhalt welcher der Varriable zugeordnet werden soll
; $VarName - Name der Varriable
; Return values .: Success - 1
; Failure - -1
; Author ........: Ich
; Related .......: VarRead
; ===============================================================================================================================
Func VarWrite($Ort,$VarInhalt,$VarName)
If Stringlen($VarName) < 1 Then Return -1
$VarInhalt = StringReplace(StringReplace($VarInhalt,@cr,"62^7@cr54^1"),@lf,"62^7@lf54^1")
$Read = FileRead($ort)
If $Read = "" Then
FileWrite($ort,$VarName&@crlf&@crlf&$VarInhalt)
Return 1
EndIf
$Read = StringSplit(StringReplace($Read,@lf,""),@cr)
If @error Then Return -1
For $i = 1 to $Read[0]
If $Read[$i] = $VarName Then
For $i2 = $i to $Read[0]
If $Read[$i2] = "" Then
$Read[$i2 + $i] = $VarInhalt
$Txt = ""
For $i3 = 1 to $Read[0]
$Txt &= $Read[$i3]&@crlf
next
FileDelete($ort)
FileWrite($ort,StringTrimRight($Txt,2))
Return 1
Endif
next
Return -1
EndIf
If $Read[$i] = "" Then
$txt = ""
$einmal = 0
For $i2 = 1 to $Read[0]
If $Read[$i2] = "" and $einmal = 0 Then
$txt &=$VarName&@crlf
$einmal = 1
EndIf
$txt &=$Read[$i2]&@crlf
next
$txt &=$VarInhalt
FileDelete($ort)
FileWrite($ort,$Txt)
Return 1
EndIf
next
Return -1
EndFunc
noch ohne Arrays natürlich
Das ist leider auch schon alles was ich habe (außer die ArraytoString Funktion oben)