59 lines
1.6 KiB
Text
59 lines
1.6 KiB
Text
type TSettings extends QObject
|
|
FullName as string
|
|
FavouriteFruit as string
|
|
NeedSpelling as integer
|
|
SeedsRemoved as integer
|
|
OtherFamily as QStringlist
|
|
|
|
Constructor
|
|
FullName = ""
|
|
FavouriteFruit = ""
|
|
NeedSpelling = 0
|
|
SeedsRemoved = 0
|
|
OtherFamily.clear
|
|
end constructor
|
|
end type
|
|
|
|
Dim Settings as TSettings
|
|
dim ConfigList as QStringList
|
|
dim x as integer
|
|
dim StrLine as string
|
|
dim StrPara as string
|
|
dim StrData as string
|
|
|
|
function Trim$(Expr as string) as string
|
|
Result = Rtrim$(Ltrim$(Expr))
|
|
end function
|
|
|
|
Sub ConfigOption(PData as string)
|
|
dim x as integer
|
|
for x = 1 to tally(PData, ",") +1
|
|
Settings.OtherFamily.AddItems Trim$(field$(PData, "," ,x))
|
|
next
|
|
end sub
|
|
|
|
Function ConfigBoolean(PData as string) as integer
|
|
PData = Trim$(PData)
|
|
Result = iif(lcase$(PData)="true" or PData="1" or PData="", 1, 0)
|
|
end function
|
|
|
|
sub ReadSettings
|
|
ConfigList.LoadFromFile("Rosetta.cfg")
|
|
ConfigList.text = REPLACESUBSTR$(ConfigList.text,"="," ")
|
|
|
|
for x = 0 to ConfigList.ItemCount -1
|
|
StrLine = Trim$(ConfigList.item(x))
|
|
StrPara = Trim$(field$(StrLine," ",1))
|
|
StrData = Trim$(lTrim$(StrLine - StrPara))
|
|
|
|
Select case UCase$(StrPara)
|
|
case "FULLNAME" : Settings.FullName = StrData
|
|
case "FAVOURITEFRUIT" : Settings.FavouriteFruit = StrData
|
|
case "NEEDSPEELING" : Settings.NeedSpelling = ConfigBoolean(StrData)
|
|
case "SEEDSREMOVED" : Settings.SeedsRemoved = ConfigBoolean(StrData)
|
|
case "OTHERFAMILY" : Call ConfigOption(StrData)
|
|
end select
|
|
next
|
|
end sub
|
|
|
|
Call ReadSettings
|