[Gambas-user] Write-Read from text file
Eilert
eilert-sprachen at ...221...
Wed Jun 28 08:28:02 CEST 2006
Jose J. Rodriguez schrieb:
> On 6/27/06, Eilert <eilert-sprachen at ...221...> wrote:
>> Jose J. Rodriguez schrieb:
>>> On 6/26/06, LinuxSeeker <linuxseeker at ...626...> wrote:
>>>> I am writing a program that needs to interact with the user and save the
>>>> user's preferences (name, number of textboxes etc) in a text file (named
>>>> "conf") at the same directory where the executable is located.
>>>>
>>> [snip]
>>>> Any suggestions on how to make this work? How can I update the
>>>> configuration file without re-writing the entire configuration file? How do
>>>> I select which line to read from?
>>>>
>>> You should consider using the Gambas component gb.settings
>>> (Application settings management):
>>> http://www.gambasdoc.org/help/comp/gb.settings
>>>
>>> Regards,
>>> Joe1962
>>>
>>
>> Hi Jose,
>>
>> Thanks for this tip - never knew about this thing. But it's heavily
>> undocumented, I doubt he'll get it to work as even I have some problems
>> understanding how it would work.
>>
>> If you know how to handle it, shouldn't we develop some easy examples?
>>
>> Just like
>>
>> - initiating a new ini-file
>> - reading from the ini-file
>> - writing values into it
>> - replacing values
>>
>
> Well, I haven't actually used this in Gambas2, as I only just
> switched. Here's a snippet of something I did a while back in Gambas1
> for vl-qemu (front-end for qemu, you can check it out at Gambas
> Forge). As you may guess, the Settings stuff is used through a VB
> ini-like concept.
>
>
> In the Global module:
>
> ' Gambas module file
>
> PUBLIC FUNCTION ReadIni(IniKey AS String, vDEFAULT AS Variant) AS Variant
> DIM hSettings AS Settings
> DIM aVariant AS Variant
> hSettings = NEW Settings(System.Home & "/" & ".vl-qemu.conf")
> aVariant = hSettings [ IniKey , vDEFAULT ]
> RETURN aVariant
> END
>
> PUBLIC SUB WriteIni(IniKey AS String, aVariant AS Variant)
> DIM hSettings AS Settings
> hSettings = NEW Settings(System.Home & "/" & ".vl-qemu.conf")
> hSettings [ IniKey ] = aVariant
> END
>
> PUBLIC SUB SaveConfig()
> 'Write config to ini file:
> WriteIni("Setting.Boot", frmMain.cmbBoot.Index)
> WriteIni("Setting.KeyLang", frmMain.cmbKeyLang.Index)
> [snip]
> WriteIni("ImagePath.HDD", frmMain.txtHDD.Text)
> WriteIni("Network.Samba", frmMain.chkSamba.Value )
> WriteIni("Network.SambaPath", frmMain.txtSamba.Text )
> END
>
> PUBLIC SUB ReadConfig()
> 'Read config from ini file:
> frmMain.cmbBoot.Index = ReadIni("Setting.Boot", 0)
> frmMain.cmbKeyLang.Index = ReadIni("Setting.KeyLang", 5)
> frmMain.cmbRTCMode.Index = ReadIni("Setting.RTCMode", 0)
> [snip]
> frmMain.txtHDD.Text = ReadIni("ImagePath.HDD", "")
> frmMain.chkSamba.Value = ReadIni("Network.Samba", 0)
> frmMain.txtSamba.Text = ReadIni("Network.SambaPath", "")
> END
>
>
> And in frmMain:
>
> ' Gambas class file
>
> PUBLIC SUB Form_Open()
> [snip]
> 'Read config from ini file:
> Global.ReadConfig
> [snip]
> END
>
> PUBLIC SUB ButtonExit_Click()
> 'Write config to ini file:
> Global.SaveConfig
> 'Go away...
> ME.Close
> END
>
>
> Hope that helps.
Hi Jose,
this helps a lot. Thank you! :-)
There is only one question: You are indicating slot/parameter by a "."
instead of a "/". Is that right, or do I understand that wrong?
Rolf
More information about the User
mailing list