Partage
  • Partager sur Facebook
  • Partager sur Twitter

fopen

nom du fichier selon une varaiable

Sujet résolu
    29 juillet 2007 à 18:52:39

    Bonjour,

    voila mon probleme:
    j'ai fait une fonction pour charger une partie mais il faut que j'ouvre un fichier dont le nom est egal a une variable. Je m'explique: je fais un menu en fonction du nombre de partie deja enregistrer. Je ne connai donc pas le nom du fichier a ouvrir(le nom correspond au numero de la partie (1, 2, 3 ...))
    J'ai essayer de mettre un %ld et le nom de la variable, ca ne marche pas.
    Voila le code du for qui fait le if qui ouvre le fichier
    for (nbrfait = 0; nbrfait < nbrpartie ; nbrfait++)
                                  {
                                  if (choixpartie == nbrpartieaff)
                                  {
                                                  FILE* fichier = NULL;
                                                  fichier = fopen("%ld.txt", "r", nbrpartieaff);
                                                  /* Lecture et enregistrement dans des variables*/
                                                  fclose(fichier);
                                  }
                                  nbrpartieaff = nbrpartieaff++;
                                  }
    • Partager sur Facebook
    • Partager sur Twitter
      29 juillet 2007 à 18:58:07

      Bonjour a toi aussi ^^
      Je te conseil de faire un truk du genre if nombrepartie = 1, fichier = fopen "ton fichier".
      Mais ce n'est pas trop faisable si il y a beaucoup de fichier, c'est a voir.
      • Partager sur Facebook
      • Partager sur Twitter
        29 juillet 2007 à 19:04:00

        Il faut créé une chaine qui contient .txt et une autre qui va contenir le nom du fichier sans l'extension. Ensuite tu concanes les deux et ça te donne:

        FILE *mPointeur = fopen(MaChaineConcatene, "r");
        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2007 à 19:16:17

          Bah dans ce cas, autant créer directement la chaine qui contiendra le nom final du fichier en fonction de la variable (%ld) avec sscanf (cf cours chaînes de caractères).
          • Partager sur Facebook
          • Partager sur Twitter
          J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
            29 juillet 2007 à 19:19:44

            le probleme c'est que si je met %quelquechose et apres un ,nomVariable il me dit un argument en trop et si je met Machaineconcatene il va cherhcer ce fichier nomme Machaineconcatene.
            Mais je vais prendre la solution de Batch Lord et metrre un maximum de 3 sauvegarde.
            • Partager sur Facebook
            • Partager sur Twitter
              29 juillet 2007 à 20:04:30

              Citation

              le probleme c'est que si je met %quelquechose et apres un ,nomVariable il me dit un argument en trop



              C'est pas un problème. Je dis même, heureusement que le compilateur gueule ! Mais pourquoi tu ne vas pas voir dans le cours sur les chaînes la fonction sprintf ? Je suis sûr qu'elle te permettra de faire ce que tu veux, car elle permet de créer une chaîne avec la valeur d'une variable dedans.
              C'est un peu bête de se limiter à trois sauvegardes et de faire du code plus moche alors qu'on a une solution appropriée à portée de main, non ?

              Scriptoff : Oui, je me rends compte que ça fait un moment que je confonds. Merci
              • Partager sur Facebook
              • Partager sur Twitter
              J'ai déménagé sur Zeste de savoir — Ex-manager des modérateurs.
                29 juillet 2007 à 20:13:16

                Citation : GuilOooo

                Je suis sûr qu'elle te permettra de faire ce que tu veux, car elle permet de créer une chaîne avec la valeur d'une variable dedans.



                Tu te trompe avec sprintf .
                • Partager sur Facebook
                • Partager sur Twitter

                fopen

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown