Written by xinyiman Ottobre 20, 2011, 12:24:00 pm21430 ViewsRating: 0 (0 Rates)Print
Spesso può capitare che all'avvio di un software si necessiti di caricarsi dei dati, per esempio i dati di connessione ad un DB. Per fare questo ci vengono in aiuto i comodissimi file INI.
Un file ini è un semplice file di testo che finisce con estensione ini, ed è strutturato per sezioni, facciamo l'esempio di aver la necessità di caricare i dati per la connessione al database e i dati di altre configurazioni (lingua, versione, email,...).
Il file ini incriminato dovrebbe essere così strutturato
[ConnDB]
Host=localhost
Nick=pippo
Pwd=pluto
DBFile=c:\appoggio.s3db
[Altro]
Lingua=italiano
Ver=1.0
Questo file va salvato in C:\ con il nome Config.ini per poter essere coerente con l'esempio successivo.
Il programma che andrebbe a leggere questi dati dovrebbe essere così strutturato:
Program Project1;
{$mode objfpc}{$H+}
Uses
Classes,SysUtils
,INIFiles {libreria per usare i file ini}
;
Var
INI:TINIFile;
Nick,Pwd,Host,DBFile, Lingua,Versione:String;
begin
INI := TINIFile.Create('C:\Config.ini');
Nick := INI.ReadString('ConnDB','Nick','');
Pwd := INI.ReadString('ConnDB','Pwd','');
Host := INI.ReadString('ConnDB','Host','');
DBFile := INI.ReadString('ConnDB','DBFile','');
Lingua := INI.ReadString('Altro','Lingua','');
Versione:= INI.ReadString('Altro','Ver','');
Ini.Free; // After we used ini file, we must call the Free method of object
{Faccio qualcosa con questi dati}
...
end.
Come vedete è parecchio semplice usare i file ini nei propri progetti. Ovviamente non è il massimo lasciare in chiaro le password nei file ini, ma l'esempio sopra voleva essere semplice. In un prossimo how to spieghero come usare le funzioni crittografiche di Lazarus/Free Pascal, e con quelle nozioni capirete come ovviare al problema delle password in chiaro nei file INI.
About the author
xinyiman registered at Italian community of Lazarus and Free Pascal on Ottobre 14, 2011, 10:56:28 pm and has posted 3269 posts in the boards since then. Last visit was Oggi alle 08:25:57 am.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.