This?
inifile (name it 'testini.ini' and save it in the same folder as the script):
Code:
[dummies]
dummy1=error
dummy2=error
[variables]
var1=xxx
var2=yyy
var3=zzz
[dummies]
dummy1=error
dummy2=error
[more variables]
var4=111
var5=222
var6=333
[dummies]
dummy1=error
dummy2=error
Code:
/* ---
- Will load all keys as variables of a particular section of an ini file
loadVarsFromIni(iniFile,iniSections)
iniFile = Set to the path to the iniFile
iniSections = Set to the section(s) of the iniFile to load.
Seperate multiple sections with commas
(If this variable is empty, the whole iniFile will be loaded)
*/
; Examples
iniFile = testini.ini
loadVarsFromIni(iniFile,"variables")
msgbox,
(LTrim
Example 1: Loading section "variables"
variables:
var1 = %var1%
var2 = %var2%
var3 = %var3%
var4 = %var4%
var5 = %var5%
var6 = %var6%
dummies:
dummy1 = %dummy1%
dummy2 = %dummy2%
)
loadVarsFromIni(iniFile,"variables,more variables")
msgbox,
(LTrim
Example 2: Loading sections "variables" and "more variables"
variables:
var1 = %var1%
var2 = %var2%
var3 = %var3%
var4 = %var4%
var5 = %var5%
var6 = %var6%
dummies:
dummy1 = %dummy1%
dummy2 = %dummy2%
)
loadVarsFromIni(iniFile,"")
msgbox,
(LTrim
Example 3: Load all sections
variables:
var1 = %var1%
var2 = %var2%
var3 = %var3%
var4 = %var4%
var5 = %var5%
var6 = %var6%
dummies:
dummy1 = %dummy1%
dummy2 = %dummy2%
)
; Function
loadVarsFromIni(iniFile,iniSectionsToLoad)
{
loadEm = 0
Loop, Read, %iniFile%
{
; Scan for section, if the line is a section, get section name,
; compare to iniSectionsToLoad, set loadEm flag
If A_LoopReadLine contains [
{
If A_LoopReadLine contains ]
{
StringMid, anIniSection, A_LoopReadLine, InStr(A_LoopReadLine,"]")-1, StrLen(A_LoopReadLine)-2, L ; Get section name
If anIniSection in %iniSectionsToLoad% ; is it in our matchlist?
loadEm = 1
Else
loadEm = 0
if iniSectionsToLoad = ; is it empty? -> get all
loadEm = 1
}
}
; Set key and value of the line to a variable named like the key
; and with the value of the key
If loadEm = 1
{
If A_LoopReadLine contains =
{
StringSplit, Field, A_LoopReadLine, =
%Field1% := Field2
}
}
}
}