camaleonteplus (Normal User)
Pro
Messaggi: 95
Iscritto: 05/03/2009
|
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 |
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?
|
|
Goblin (Member)
Expert
Messaggi: 375
Iscritto: 02/02/2011
|
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 |
|
camaleonteplus (Normal User)
Pro
Messaggi: 95
Iscritto: 05/03/2009
|
come hai fatto tu mi crea due file invece volevo fare tutto in un file.
Ho Fatto in questo modo:
Codice sorgente - presumibilmente Delphi |
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'
|
|
Goblin (Member)
Expert
Messaggi: 375
Iscritto: 02/02/2011
|
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 |
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
Codice sorgente - presumibilmente Delphi |
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 |
|
smanettone83 (Normal User)
Pro
Messaggi: 124
Iscritto: 20/10/2010
|
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 |
//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!
|
|
camaleonteplus (Normal User)
Pro
Messaggi: 95
Iscritto: 05/03/2009
|
Per scrivere il file Ini ho fatto in questo modo.
Codice sorgente - presumibilmente Delphi |
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.
Codice sorgente - presumibilmente Delphi |
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:
Codice sorgente - presumibilmente Plain Text |
Username:= ini.ReadString('Dati','Username',Username.text);
|
dove l'errore? |
|
smanettone83 (Normal User)
Pro
Messaggi: 124
Iscritto: 20/10/2010
|
fai cosi:
Codice sorgente - presumibilmente Delphi |
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;
|
|
|
camaleonteplus (Normal User)
Pro
Messaggi: 95
Iscritto: 05/03/2009
|
adesso l'errore me lo da su questa riga:
Codice sorgente - presumibilmente Plain Text |
Username.text:= Username:
|
[Error] Invio.pas(250): Record, object or class type required
|
|
smanettone83 (Normal User)
Pro
Messaggi: 124
Iscritto: 20/10/2010
|
cambia
Username.text:= Username:
Password.text:= Password:
in
Username.text:= Username;
Password.text:= Password;
|
|