Что нового

IniRead не видит обрамляющих кавычек

asdf8

Скриптер
Сообщения
564
Репутация
152
Win XP sp3
AutoIt3 v3.3.2.0
IniRead не видит обрамляющих кавычек, а IniReadSection - видит.

Код:
#Include <Array.au3>

$Ini = @ScriptDir & '\file.ini'

IniWrite ( $Ini, "section", "key1", '''val''ue''' )
IniWrite ( $Ini, "section", "key2", '"val"ue"' )
Sleep(250)
ConsoleWrite(IniRead($Ini, "section", "key1", "NotFound") & @LF)
ConsoleWrite(IniRead($Ini, "section", "key2", "NotFound") & @LF)
$var = IniReadSection($Ini, "section")
_ArrayDisplay($var)
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Re: IniWrite не видит обрамляющих кавычек

asdf8
Если я правильно понял, то нужно, чтобы текст value записывался в INI-файл в кавычках:

Код:
#Include <Array.au3>

$Ini = @ScriptDir & '\file.ini'

IniWrite ( $Ini, "section", "key1", '"value"' )
IniWrite ( $Ini, "section", "key2", '"value"' )
Sleep(250)
ConsoleWrite(IniRead($Ini, "section", "key1", "NotFound") & @LF)
ConsoleWrite(IniRead($Ini, "section", "key2", "NotFound") & @LF)
$var = IniReadSection($Ini, "section")
_ArrayDisplay($var)
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Re: IniWrite не видит обрамляющих кавычек

snoitaleR,
записывается то с кавычками, а читает IniRead - одно, IniReadSection - другое.
 

SyDr

Сидра
Сообщения
651
Репутация
158
Re: IniWrite не видит обрамляющих кавычек

Оффициальной спецификации Ini-файлов не существует.
В неофицальной спецификации указано, что String values may optionally be enclosed in quote characters (""", decimal code 34). String values beginning or ending with spaces, or containing commas or semicolons, must be enclosed in quotes.

То есть IniReadSection не должна помещать в массив эти кавычки.
Хотя да, функции должны вести себя одинаково.
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
Re: IniWrite не видит обрамляющих кавычек

asdf8
Я думаю, название темы должно содержать не IniWrite, а IniRead...
 
Автор
A

asdf8

Скриптер
Сообщения
564
Репутация
152
Re: IniWrite не видит обрамляющих кавычек

Если бы действительно имелось в виду, что обрамляющие кавычки и не должны читаться в ini-файлах, то они, по идее, не должны были бы и записываться через IniWrite

PS точно - с названием просмотрел
 

SyDr

Сидра
Сообщения
651
Репутация
158
Он кавычки и не записывает. Он их записывает в случае, если вам это надо:
When writing a value that is quoted, the quotes are stripped. In order to write the quote marks to the value, you must double up the quoting. For example: ""This is a test"" will produce "This is a test" in the file.
 
Верх