Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: carmelo81 - Dicembre 24, 2012, 07:10:11 pm

Titolo: Lettura testo da file ini
Inserito da: carmelo81 - Dicembre 24, 2012, 07:10:11 pm
Ciao a tutti!
Ho un applicazione che memorizza del testo salvandolo in un file *.txt che poi viene caricato, sempre automaticamente, al riavvio dell'applicazione.
Quello che vorrei fare è salvare questo testo in un file *.ini (cosi anche per capire il funzionamento dei file ini).
Ho provato a farlo ma al momento di caricare il testo, il tmemo legge dal file .ini solo la prima lines e non tutte le altre. Inoltre, se apro il file .ini vedo tutto quello che ho scritto nel tmemo anche se cancellato.
Allego il codice cosi si vede dove sbaglio..
Dove sbaglio??

Codice: [Seleziona]
procedure TForm1.FormCreate(Sender: TObject);
var
   ini: TIniFile;
   res: string;
begin
    try
     ini := TIniFile.Create('c:\C_Memoini.ini');
     res := ini.ReadString('Section_Name', 'Key_Name', memo1.text);
     memo1.Text:=res;
   finally
     ini.Free;
   end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
   ini: TIniFile;
begin
timer1.Enabled:=false;
   ini := TIniFile.Create('c:\C_Memoini.ini');
   try
     ini.WriteString('Section_Name', 'Key_Name', memo1.Text);
   finally
     ini.Free;
   end;
end;   

Questo è il file ini dopo aver fatto alcune prove

[Section_Name]
Key_Name=ahaha
=dd
=d5
=dd
=ciaoahahah
=152
=cao
=ciaoahahah
=ciaoahahah
=ciaoahahah
=ciao
=ciao
=1234
=ciso
=ciao
=ciao
=1234
=ciao
=ciao
=ciao
=ciao
=e poi
=e poi ....
=123
=e poi
=e poi ....
=e poi
=e poi
=sksk



Grazie mille e sincerissimi auguri di buon Natale!!!
Carmelo
Titolo: Re:Lettura testo da file ini
Inserito da: Stilgar - Dicembre 25, 2012, 12:05:46 am
Sbagli il modo di interrogare il "file.ini".
Il file .ini viene interpretato.
In pratica hai sezioni e valori.
Se chiedi un valore di una determinata sezione, è corretto che ti venga resitituito un solo valore.
Per ricreare l'intero file devi fare più cicli.
Uno per chiedere quante sezioni ci sono, e uno interno per sapere quanti valori ci sono in quella sezione specifica.

Ho sempre trovato scomodo il formato ini. Preferisco un file di testo xml o formato mio, ma nel secondo caso devo farmi il parser per capire cosa è scritto. Con tutti i casini che ogni volta comporta ;) Te lo sconsiglio se non sei pratico di scanner e tree builder.

Stilgar