Hallo Leute,
ich bin ein absoluter Regex-Idiot und kann nur profanste Dinge. Mit dem Auslesen einer Ini bin ich aktuell überfordert.
Vorweg: Ich bin mir der Iniread(Section)-Befehle bewusst, möchte aber die Datei lieber nur einmal lesen und dann mit dem String arbeiten.
Ich kann die aktuelle Struktur ganz plump und erfolgreich nachbauen. Jedoch müsste ich das Pattern bei jeder Änderung in der Ini auch überarbeiten. Ich weiß, Regex kann mehr. Daher würde ich mich sehr freuen, wenn ein kenntnisreicheres Mitglied mir zeigen würde wie es geht. Wie erfasse ich nach der Sektion (\[(.*?)\]) beliebig viele Werte?
Code
#include <Array.au3>
$sString = "[ID1]" & @CRLF & "Ab=2019/12/12" & @CRLF & "Nummer=" & @CRLF & "Text=Test" & _
@CRLF & "An=User1" & @CRLF & "Von=User1" & @CRLF & "Erledigt am=" & @CRLF & "Erledigt von=" & @CRLF & _
"Jeder=Nein" & @CRLF & "Zuletzt geprüft=2019/01/01" & @CRLF & "Serienregel=Nein" & @CRLF & _
"Ablage=OrdnerX" & @CRLF & "Geöffnet von=User2" & @CRLF
$aRet = StringRegExp($sString, "\[(.*?)\]\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n.*?=(.*?)\r\n", 3)
_ArrayDisplay($aRet)