Что-то не лады с UDF IniVirtual.au3. В примере, ключ почему-то захватывает перенос строки. Результат следующий:
Функция в UDF(с тестовыми строками)
Код:
$sKey = key2
$aKey[2][0] =
key2
---
$sKey = 0x6B657932
$aKey[2][0] = 0x0A6B657932
$sKey = $aKey[2][0] ? False
Код:
#include <IniVirtual.au3>
$sPath = @ScriptDir & '\tmp.ini'
IniWrite ($sPath, "Section", "key1", "111" )
IniWrite ($sPath, "Section", "key2", "222" )
$s_ini_Text = FileRead($sPath)
$aInitVirtual = _IniVirtual_Initial($s_ini_Text)
$sRes = __IniVirtual_Read($aInitVirtual, 'Section', 'key2', 'Default')
Функция в UDF(с тестовыми строками)
Код:
Func _IniVirtual_Read($a_Ini_Virtual2D, $sSection, $sKey, $sDefault = '')
Local $i = _ArraySearch($a_Ini_Virtual2D, $sSection, 1, 0, 0, 2, 1, 0)
If @error Then Return $sDefault
Local $aKey = $a_Ini_Virtual2D[$i][1]
;
ConsoleWrite('$sKey = ' & $sKey & @CRLF)
ConsoleWrite('$aKey[2][0] = ' & $aKey[2][0] & @CRLF)
ConsoleWrite('---' & @CRLF)
ConsoleWrite('$sKey = ' & StringToBinary($sKey) & @CRLF)
ConsoleWrite('$aKey[2][0] = ' & StringToBinary($aKey[2][0]) & @CRLF)
ConsoleWrite('$sKey = $aKey[2][0] ? ')
ConsoleWrite($sKey = $aKey[2][0])
ConsoleWrite(@CRLF&@CRLF)
;
$i = _ArraySearch($aKey, $sKey, 1, 0, 0, 2, 1, 0)
If @error Then Return $sDefault
Return $aKey[$i][1]
EndFunc ;==>_IniVirtual_Read