Open( choix d'un .txt) ?

Résolu
flop -  
 flop -
Bonjour,

est-il possible via la fonction
open( **********, O_RDONLY) ;
de remplacer les ********** par une chaine de caractère portant le nom du fichier.txt a ouvrir ?

me permettant ainsi de laissez le choix du dossier a ouvrir a l'utilisateur !

un exemple me serais d'une grande aide si cela s'avère possible !
merci de votre aide future !!

1 réponse

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    Oui, c'est possible.
    Exemple : open("toto.txt", O_RDONLY);

    Note : pourquoi utiliser la fonction open() et non fopen() ? fopen() est une fonction standard contrairement à l'autre.

    Cdlt,
    0
    1. flop
       
      Bonsoir fiddy !

      Je me suis mal exprimé .
      Imaginons que l'utilisateur a un choix a faire .
      Si il tape 1 le fichier1.txt sera ouvert , si il tape 2 ce sera le fichier2.txt et ainsi de suite .

      Moi je cherche a savoir si il est possible de remplacer toto.txt par le nom de sa chaine de caractère .
      Je cherche a faire ceci en reprenant ton exemple .

      Char truc[8] = "toto.txt" ;
      ....
      Open(truc ,O_RDONLY);

      A présent pour illustrer mon objectif rapidement

      If ( utilisateur tape 1)
      Truc[8] = "fichier1.txt'" ;
      If ( utilisateur tape 2)
      Truc[8] = "fichier2.txt"

      Open(truc ,O_RDONLY)

      Possible de faire sa ?
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Oui possible.
      char truc[8+1]; /*ne pas oublier de compte le caractère de fin*/
      int d;
      int ret;
      printf("nb=");
      ret=scanf("%d",&d);
      if(ret==1 && d>0 && d<10) {
           int fd;
           sprintf(truc, sizeof truc, "toto%d.txt", d);
           fd=open(truc, O_RDONLY);
           /**/
           close(fd);
      }
      

      Je n'ai pas testé, il y a peut-être une erreur qui s'est glissée...
      Et je répète : pourquoi ne pas utiliser fopen() au lieu de open() ???
      0
    3. flop
       
      merci fiddy !

      je vais testé sa rapidement !
      et je te tien informé du résultat !

      j'utilise open() car j'ai toujours fait avec , donc c'est plus une question d'habitude que de contrainte, mais si tu pense que mon problème peut être résolut plus vite grâce a sa je suis a ton écoute !!
      0
    4. flop
       
      pourquoi faut-il close le file descriptor ? (fd)
      0
    5. flop
       
      et pour finir je rencontre un problème avec sprintf
      (lui non plus j'ai pas l'habitude de l'utilisé )

      >
      warning: passing argument 2 of `sprintf' makes pointer from integer without a cast [enabled by default]
      sprintf(level, sizeof level, "map_%d.txt", d);
      <

      level remplace truc dans ton exemple .
      une dernière aide ? normalement après sa j'ai fini mon programme !

      merci beaucoup ;-)
      0