Oppure

Loading
03/05/11 14:30
camaleonteplus
In due TEdit digito di frequento la user e la pass vorrei che questi dati venissero memerozati in un file di nome, Config.ini ho comuinciato cosi il codice basandomi su un codice che uso di solito per salvare del testo.
procedure TForm2.Save1Click(Sender: TObject);
begin
if RzSaveDialog1.Execute then
begin
Messaggio.Lines.SaveToFile(RzSaveDialog1.Filename);
StatusBar.Panels[3].Text:='Salvato il file: '+RzSaveDialog1.Filename;
end;
end;

come posso salvare i dati di un Tedit in un file di testo?
aaa
03/05/11 16:17
Goblin
Postato originariamente da camaleonteplus:
... <CUT>...
come posso salvare i dati di un Tedit in un file di testo?


1) modo terra terra
messaggio.lines.add(user.text);
messaggio.lines.add(pwd.text);
.. tua procedura di salvataggio (Save1Click(Nil))

2) un po' più furbo
usi una TStringList salvando i dati almeno con uno xor

3) come il primo solo che oltre i dati cripti anche il file salvato

puoi utilizzare anche la classe TInifiles

G.
Ibis redibis non morieris in bello
03/05/11 16:29
camaleonteplus
come hai fatto tu mi crea due file invece volevo fare tutto in un file.
Ho Fatto in questo modo:
procedure TForm2.Exit1Click(Sender: TObject);
begin
Username.Items.SaveToFile('Config.ini');
close;
end;
end;

ma mi da questo errore:
[Error] Invio.pas(532): Undeclared identifier: 'Items'
aaa
03/05/11 17:12
Goblin
Postato originariamente da camaleonteplus:

come hai fatto tu mi crea due file invece volevo fare tutto in un file.
Ho Fatto in questo modo:
procedure TForm2.Exit1Click(Sender: TObject);
begin
Username.Items.SaveToFile('Config.ini');
close;
end;
end;

ma mi da questo errore:
[Error] Invio.pas(532): Undeclared identifier: 'Items'


2 file ??
uno solo con 2 righe, in quanto l'add è stato fatto al componente messaggio.

cmq io userei la classe TStringList, oppure la classe TIniFile.
Butto giù qualcosa "al volo" per quanto riguarda la TSTringList

Function SaveStringTofile(sFile: String; aRighe: array of String):Boolean;  // ritorna tru se tutto OK
Var oFile: TStringList;
    x: Integer;
begin
   Result := True; //tutto OK
// manca tutto  il pezzo del test se esiste, se arighe <> vuoto ect ect ect
   oFile := TStringList.Create;
   try
     For x:= Low(aRighe) to High(aRighe) do
       oFile.Add(aRighe[x]);
     Try
       oFile.SaveToFile(sFile);
     except
       //gestione errori
       Result := false;
     end;
   finally
     oFile.Free;
   end;
end;


la chiamata :
SaveStringTofile('c:\test\pippo.txt', ['pippo', 'Pluto']);

il primo parametro è il nome del file con il path completo, il secondo parametro è un array di stringhe che saranno salvate nel file, nel mezzo una funzioncina di critta/decritta per non far vedere in chiaro le parole salvate ci potrebbe stare bene
G
Ibis redibis non morieris in bello
03/05/11 19:43
smanettone83
Ti da errore perche la chiamata per la creazione dei file ini è diversa.
Per prima cosa dichiara nelle uses la clausola INIFILES. poi dovrai creare 2 procedure: una per la scrittura dell' ini ed una per la lettura.

//CREAZIONE DEL FILE INI
procedure CreaIni;
var
ini:Tinifile;
begin
ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
ini.WriteString('DATI','Username',user.text);
ini.WriteString('DATI','Password',pass.text);
end;

//LETTURA DEL FILE INI
procedure LeggiIni;
var
ini:Tinifile;
Username,password:string;
begin
ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
Username:= ini.ReadString('DATI','Username','');
Password:= ini.ReadString('DATI','Password',pass.text);
user.text:= Username:
pass.text:= Password;
end;


Puoi chiamara la procedura LeggiIni sull'evento oncreate del form1 e il CreaIni sul Onclose.

Spero ti sia di aiuto! ;)



aaa
04/05/11 15:38
camaleonteplus
Per scrivere il file Ini ho fatto in questo modo.
procedure TForm2.Exit1Click(Sender: TObject);
var
    ini:Tinifile;
begin
    ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
    ini.WriteString('Dati','Username',Username.text);
    ini.WriteString('Dati','Password',Password.text);
    ini.WriteString('Rete','HeloName',Helo.text);
    close
end;

il file viene creato perfettamente.
Per leggere il file ini ho fatto cosi.
var
    ini:Tinifile;
    Username,Password,HeloName:string;
begin
    ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
    Username:= ini.ReadString('Dati','Username',Username.text);
    Password:= ini.ReadString('Dati','Password',Password.text);
    HeloName:= ini.ReadString('Rete','HeloName',Helo.text);
    Username.text:= Username:
    Password.text:= Password:
    Helo.Text:= HeloName;
    end;

e qui ho il problema mi da questo errore:
[Error] Invio.pas(247): Record, object or class type required
su questa riga:
Username:= ini.ReadString('Dati','Username',Username.text);

dove l'errore?
aaa
04/05/11 18:31
smanettone83
fai cosi:

var
    ini:Tinifile;
    Username,Password,HeloName:string;
begin
    ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
    Username:= ini.ReadString('Dati','Username','');
    Password:= ini.ReadString('Dati','Password','');
    HeloName:= ini.ReadString('Rete','HeloName','');
    Username.text:= Username:
    Password.text:= Password:
    Helo.Text:= HeloName;
    end;
aaa
04/05/11 19:43
camaleonteplus
adesso l'errore me lo da su questa riga:
Username.text:= Username:

[Error] Invio.pas(250): Record, object or class type required
aaa