Fichier : enregistrement automatique

docdoc - 21 janv. 2013 à 11:43
 docdoc - 22 janv. 2013 à 20:49
Bonjour à tous,
Voilà mon souci !
Comment faire pour enregistrer un fichier text sans passer par savedialog (et open dialog pour l'ouvrir) mais que le nom du fichier soit attribué automatiquement au nom de l'utilisateur lorsque ce dernier quitte l'application.
Ai-je été clair ?
(En somme j'ai un fichier en arrière-plan (mais pas « espion » !!!) qui doit s'enregistrer automatiquement au nom de l'utilisateur qui s'est préalablement identifié)
Ah ! Encore ces fichiers !
Par avance merci de votre aide.

DOCDOC

3 réponses

dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
21 janv. 2013 à 14:45
salut
Si je comprends bien tout, tu dispose du nom de l'utilisateur, donc stocké dans la variable (string) : nomUSER
tu disposes d'un TstringList nommé "LISTE" dans ton application, que tu auras créée auparavant et dans laquelle tu notes tout ce que tu veux, exemple :
LISTE.add('tout ce que tu veux');


Avant de quitter l'application il te suffit de faire la sauvegarde de la LISTE avec
LISTE.savetofile(nomUSER);


ensuite tu libères la liste et tu quittes :
LISTE.free



Dubois77
site perso
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
21 janv. 2013 à 14:51
les fonctions utiles :

function getUserName: string;
var
  MyComputerName : array[0..MAX_COMPUTERNAME_LENGTH] of Char;
  MyUserName     : array[0..MAX_COMPUTERNAME_LENGTH] of Char;
  nSize : DWord;
const
  cnMaxUserNameLen = 254;
begin
  nSize := SizeOf(MyComputerName);
  GetComputerName(@MyComputerName, nSize);
  nSize := SizeOf(MyUserName);
  GetUserName(@MyUserName, nSize);

  result := UpperCase(string(MyComputerName)+'.'+string(MyUserName));
end;

function getDateCode: string;
var Y,M,D,H,N,S,Z: word;
begin
  DecodeDateTime(Now, Y, M, D, H, N, S, Z);
  result := format('%.4d%.2d%.2d-%.2d%.2d%.2d',[Y,M,D,H,N,S]);
end;


créer le nom du fichier :

UserFilePath := ExtractFilePath(ParamStr(0))+'users\'+getUserName+'\';
UserFileName := 'Data-'+getDateCode+'.txt';

if not DirectoryExists(UserFilePath) then
  CreateDir(UserFilePath);



si il s'agit d'un TMemo ou TRichEdit :
Memo1.Lines.SaveToFile(UserFilePath+UserFileName);


si il s'agit d'un TListBox, TRadioGroup ou TComboBox :
ListBox1.Items.SaveToFile(UserFilePath+UserFileName);


si il s'agit de façon générique d'un TString/TStringList :
Strings.SaveToFile(UserFilePath+UserFileName);



________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
0
merci dubois77,
pourquoi faire simple quand on peut faire compliqué !
j'étais parti sur
RichEdit.Lines.SaveToFile('C:\Monichier.TEXT')
et je n'arrivais pas à attribuer une variable à (monfichier) .... ce qui me semble maintenant logique ou je me trompe ??
encore merci

DOCDOC
0
Rejoignez-nous