Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - Salvare le impostazioni (Delphi7)
Forum - Delphi - Salvare le impostazioni (Delphi7)

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 16:30
Martedì, 03/05/2011
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.
Codice sorgente - presumibilmente Delphi

  1. procedure TForm2.Save1Click(Sender: TObject);
  2. begin
  3. if RzSaveDialog1.Execute then
  4. begin
  5. Messaggio.Lines.SaveToFile(RzSaveDialog1.Filename);
  6. StatusBar.Panels[3].Text:='Salvato il file: '+RzSaveDialog1.Filename;
  7. end;
  8. end;


come posso salvare i dati di un Tedit in un file di testo?

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 18:17
Martedì, 03/05/2011
Testo quotato

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
PM Quote
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 18:29
Martedì, 03/05/2011
come hai fatto tu mi crea due file invece volevo fare tutto in un file.
Ho Fatto in questo modo:
Codice sorgente - presumibilmente Delphi

  1. procedure TForm2.Exit1Click(Sender: TObject);
  2. begin
  3. Username.Items.SaveToFile('Config.ini');
  4. close;
  5. end;
  6. end;


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

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 19:12
Martedì, 03/05/2011
Testo quotato

Postato originariamente da camaleonteplus:

come hai fatto tu mi crea due file invece volevo fare tutto in un file.
Ho Fatto in questo modo:
Codice sorgente - presumibilmente Delphi

  1. procedure TForm2.Exit1Click(Sender: TObject);
  2. begin
  3. Username.Items.SaveToFile('Config.ini');
  4. close;
  5. end;
  6. 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

Codice sorgente - presumibilmente Delphi

  1. Function SaveStringTofile(sFile: String; aRighe: array of String):Boolean;  // ritorna tru se tutto OK
  2. Var oFile: TStringList;
  3.     x: Integer;
  4. begin
  5.    Result := True; //tutto OK
  6. // manca tutto  il pezzo del test se esiste, se arighe <> vuoto ect ect ect
  7.    oFile := TStringList.Create;
  8.    try
  9.      For x:= Low(aRighe) to High(aRighe) do
  10.        oFile.Add(aRighe[x]);
  11.      Try
  12.        oFile.SaveToFile(sFile);
  13.      except
  14.        //gestione errori
  15.        Result := false;
  16.      end;
  17.    finally
  18.      oFile.Free;
  19.    end;
  20. 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
PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 21:43
Martedì, 03/05/2011
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.

Codice sorgente - presumibilmente Delphi

  1. //CREAZIONE DEL FILE INI
  2. procedure CreaIni;
  3. var
  4. ini:Tinifile;
  5. begin
  6. ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
  7. ini.WriteString('DATI','Username',user.text);
  8. ini.WriteString('DATI','Password',pass.text);
  9. end;
  10.  
  11. //LETTURA DEL FILE INI
  12. procedure LeggiIni;
  13. var
  14. ini:Tinifile;
  15. Username,password:string;
  16. begin
  17. ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
  18. Username:= ini.ReadString('DATI','Username','');
  19. Password:= ini.ReadString('DATI','Password',pass.text);
  20. user.text:= Username:
  21. pass.text:= Password;
  22. end;



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

Spero ti sia di aiuto! ;)




PM Quote
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 17:38
Mercoledì, 04/05/2011
Per scrivere il file Ini ho fatto in questo modo.
Codice sorgente - presumibilmente Delphi

  1. procedure TForm2.Exit1Click(Sender: TObject);
  2. var
  3.     ini:Tinifile;
  4. begin
  5.     ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
  6.     ini.WriteString('Dati','Username',Username.text);
  7.     ini.WriteString('Dati','Password',Password.text);
  8.     ini.WriteString('Rete','HeloName',Helo.text);
  9.     close
  10. end;


il file viene creato perfettamente.
Per leggere il file ini ho fatto cosi.
Codice sorgente - presumibilmente Delphi

  1. var
  2.     ini:Tinifile;
  3.     Username,Password,HeloName:string;
  4. begin
  5.     ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
  6.     Username:= ini.ReadString('Dati','Username',Username.text);
  7.     Password:= ini.ReadString('Dati','Password',Password.text);
  8.     HeloName:= ini.ReadString('Rete','HeloName',Helo.text);
  9.     Username.text:= Username:
  10.     Password.text:= Password:
  11.     Helo.Text:= HeloName;
  12.     end;


e qui ho il problema mi da questo errore:
[Error] Invio.pas(247): Record, object or class type required
su questa riga:
Codice sorgente - presumibilmente Plain Text

  1. Username:= ini.ReadString('Dati','Username',Username.text);


dove l'errore?

PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 20:31
Mercoledì, 04/05/2011
fai cosi:

Codice sorgente - presumibilmente Delphi

  1. var
  2.     ini:Tinifile;
  3.     Username,Password,HeloName:string;
  4. begin
  5.     ini:= Tinifile.Create(extractfilepath(paramstr(0))+'Config.ini');
  6.     Username:= ini.ReadString('Dati','Username','');
  7.     Password:= ini.ReadString('Dati','Password','');
  8.     HeloName:= ini.ReadString('Rete','HeloName','');
  9.     Username.text:= Username:
  10.     Password.text:= Password:
  11.     Helo.Text:= HeloName;
  12.     end;


PM Quote
Avatar
camaleonteplus (Normal User)
Pro


Messaggi: 95
Iscritto: 05/03/2009

Segnala al moderatore
Postato alle 21:43
Mercoledì, 04/05/2011
adesso l'errore me lo da su questa riga:
Codice sorgente - presumibilmente Plain Text

  1. Username.text:= Username:


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

PM Quote
Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 22:09
Mercoledì, 04/05/2011
cambia
Username.text:= Username:
Password.text:= Password:

in

Username.text:= Username;
Password.text:= Password;

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo