Das hier gepostete sieht wie ein Ausschnitt aus einem größeren Skript aus und ist so nicht lauffähig.
Dein kpmplettes Skript könnte laufen wenn
- #include <Array.au3> am Anfang hinzugefügt wird. Dieses Include wird benötigt für _ArrayDisplay
- die Zeile mit MsgBox(0,"fast fertig", "fast fertig") entfernt wird. MsgBox überschreibt (wie alle Funktionen) @Extended
wie gesagt könnte, aber da du die MsgBox zu sehen bekommen hast, sollte es eigentlich klappen.
So:
Code
#include <Array.au3>
Global $aini
$sData = ClipGet() ;Daten aus Zwischenablage auslesen
#cs
$hFile=FileOpen('Pseudo.Ini',$FO_OVERWRITE)
FileWrite($hFile,$sData)
FileClose($hFile)
#ce
;$sData=FileRead('Pseudo.Ini')
_PseudoIniCreate($sData) ;PseudoIni als 2D-Array erzeugen
$sFound = _PseudoIniRead("LW")
If @extended Then
$aRes = StringSplit($sFound, '|', 1 + 2)
_ArrayDisplay($aRes, "LW")
EndIf
MsgBox(0, "habe fertig", "Flasche leer" & @CRLF & "was machen Strunz?")
Func _PseudoIniCreate($sIniText)
$aini = StringSplit($sIniText, @CRLF, 1 + 2) ;=> 1D Array aller kopierten Zeilen
_ArrayColInsert($aini, 1) ;aus 1D 2D machen
For $i = UBound($aini) - 1 To 0 Step -1 ;Zeilen durchgehen
$aini[$i][0] = StringReplace($aini[$i][0], ',', '=', 1) ;1. Komma mit Gleichzeichen ersetzen
$split = StringSplit($aini[$i][0], '=', 1 + 2) ;Zeile mit = trennen
If UBound($split) > 1 Then ;Datenwerte eintragen
$aini[$i][0] = $split[0]
$aini[$i][1] = $split[1]
Else
_ArrayDelete($aini, $i)
EndIf
Next
_ArrayDisplay($aini)
EndFunc ;==>_PseudoIniCreate
Func _PseudoIniRead($sKey)
;Syntax _PseudoIniRead('DerGesuchteString')
;
;Parameter: $sKey enthält den zu suchenden "Key" im PseudoIni-Array
;
;Rückgabe: bei Erfolg: einen | getrennten String = "Value" des "Keys"
; @error = 0
; @extended = Anzahl der Teilstrings
;
; bei Fehler: @error = 1
; @extended = 0
Local $sRet, $iErr = 1, $iExt = 0
For $i = 0 To UBound($aini) - 1 Step 1
If $aini[$i][0] = $sKey Then
$sRet = StringReplace($aini[$i][1], ',', '|')
$iExt = @extended + 1
$iErr = 0
ExitLoop
EndIf
Next
SetError($iErr, $iExt)
Return $sRet
EndFunc ;==>_PseudoIniRead
Alles anzeigen
funktioniert dein geposteter Ausschnitt jedenfalls.