Hallo Zusammen,
ich steh mal wieder auf dem Schlauch
Ich möchte den Value eines Key's in einer Ini-Datei vergleichen. Bei Ungleichheit soll der Key/die Section gelöscht und neu geschrieben werden (die Section hat nur einen Key). Aber das tut er nicht.
Der Quellcode für das Script sieht so aus:
C
#include <File.au3>
#include <FileConstants.au3>
$aExcel = IniReadSection( "test.ini", "EXCEL" )
$pExcelDir = $aExcel[ 1 ][ 1 ]
Local $sExcelFile = FileOpenDialog( "Select Excel-File", $pExcelDir, "Excel-File (*.xlsx; *.xls)", $FD_FILEMUSTEXIST )
Local $pExcelFilePath = _PathSplit( $sExcelFile, "", "", "", "" )[ 1 ] & _PathSplit( $sExcelFile, "", "", "", "" )[ 2 ]
ConsoleWrite( $pExcelDir & @CRLF & $pExcelFilePath & @CRLF & StringCompare( $pExcelDir, $pExcelFilePath ) & @CRLF )
If Not ( $pExcelDir == $pExcelFilePath ) Then; And Not @error And Not $sExcelFile == "" Then
IniDelete( "test.ini", "EXCEL" )
IniWrite( "test.ini", "EXCEL", "ExcelDir", $pExcelFilePath )
$pExcelDir = $pExcelFilePath
EndIf
Alles anzeigen
Und die Ini-Datei so:
Durch das "ConsoleWrite" sehe ich, dass sowohl die beiden Strings unterschiedlich sind, als auch der StringCompare ein vernünftiges Ergebnis liefert. Denoch wird entweder das If nicht ausgeführt, oder das Schreiben in die Ini-Datei.