1

Тема: AHK: Сохранение многострочных данных в ini-файл

Две функции позволяют сохранять в ini-файл и считывать из него данные, содержащие несколько строк.

MyIniWrite(Value, Filename, Section, Key){
StringReplace, Value, Value, `n, <linefeed>, All
IniWrite, %Value%, %Filename%, %Section%, %Key%
}

MyIniRead(ByRef OutputVar, Filename, Section, Key, ByRef Default){
IniRead,  OutputVar, %Filename%, %Section%, %Key%, %Default%
StringReplace, OutputVar, OutputVar, <linefeed>, `n, All
}
+ Пример использования
Win_Counts_1 =
(
Строка 1
Строка 2
Строка 3
)

MyIniWrite(Win_Counts_1, "Filename.ini", "Section", "Key")
MyIniRead(OutputVar, "Filename.ini", "Section", "Key", "MyError")
MsgBox, % OutputVar
Return

MyIniWrite(Value, Filename, Section, Key){
StringReplace, Value, Value, `n, <linefeed>, All
IniWrite, %Value%, %Filename%, %Section%, %Key%
}

MyIniRead(ByRef OutputVar, Filename, Section, Key, ByRef Default){
IniRead,  OutputVar, %Filename%, %Section%, %Key%, %Default%
StringReplace, OutputVar, OutputVar, <linefeed>, `n, All
}

Связанная тема

2

Re: AHK: Сохранение многострочных данных в ini-файл

Функции от Malcev без использования автозамены. Строки раскладываются по параметрам внутри секции ini-файла.


Win_Counts_1 =
(
http://worldoftanks.ru Home - ROBLOX
ok.ru
)

MyIniWrite(Win_Counts_1, "Filename.ini", "Section", "Key")
MyIniRead(OutputVar, "Filename.ini", "Section", "Key", "MyError")
MsgBox, % OutputVar
Return

MyIniWrite(Value, Filename, Section, Key)
{
   Loop, Parse, value, `r`n
      IniWrite, %A_LoopField%, %Filename%, %Section%, %A_Index%|%Key%
}


MyIniRead(ByRef OutputVar, Filename, Section, Key, ByRef Default)
{
   loop
   {
      IniRead, Value, %Filename%, %Section%, %A_Index%|%Key%, %Default%
      If (Value = Default)
         break
      If A_Index = 1
         OutputVar := value 
      else
         OutputVar .= "`n" value
    }
}