Problème avec FileCreate puis AssignFile

Résolu
jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 - 19 févr. 2007 à 19:35
jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 - 19 févr. 2007 à 19:53
Mon extrait de code :



var s0,s1,Rep : String;
    TF : TextFile;
  ...   
  // Création du répertoire de travail s'il n'existe pas
  Rep:= ExtractFilePath(paramstr(0));
  s0:=Rep+'\Param';
  if not DirectoryExists (s0) then CreateDir(s0);
  // Création du fichier ListNT s'il n'existe pas
  s0:=RepLocal+'\Param/ListNT.lst';
  if not FileExists (s0) then FileCreate(s0);
  ...
  // Lecture de la liste
  s0: =Rep+'\Param/ListNT.lst';
  FPrinc.CBnat.Items.LoadFromFile(s0);
  AssignFile(TF,s0);
    Reset(TF);
    Readln(TF,s1);
  CloseFile(TF);

ça sert à initialiser et créer un fichier ListNT.lst lors de la prmière utilisation du logiciel, puis les autres fois à écrire et lire les données dans ce fichier.
Quand le fichier existe : ça marche impec !
Le problème, quand c'est la première fois : il me fait une erreur ... visiblement : FileCreate continue à utiliser le fichier ...
Ouiais, suffit de relancer et hop : ça marche ... mais bon ça fait pas pro ... même si bien entendu je n'ai pas cette prétention !
Merci d'avance.

Jean-Michel

1 réponse

jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 1
19 févr. 2007 à 19:53
j'ai posté un peu vite :
je remplace FileCreate(s0) par ce qui est en rouge ci dessous :

  if not FileExists (s0) then <strike>FileCreate(s0);</strike> begin
    AssignFile(TF,s0);
    Rewrite(TF);
    CloseFile(TF);
  end;

Jean-Michel
3
Rejoignez-nous