Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2744 connectés 

 


Dernière réponse
Sujet : Problème avec la fonction fopen
aqwsezsxdr pas les FindFirstFile et FindNextFile, l'exemple c'est du ++ mais les deux autres fonctions viennent de l'api win32 et tu peux les utiliser en c directos.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
aqwsezsxdr pas les FindFirstFile et FindNextFile, l'exemple c'est du ++ mais les deux autres fonctions viennent de l'api win32 et tu peux les utiliser en c directos.
Fab51 Ouais mais tout ça c'est du C++ on dirais...
aqwsezsxdr et si tu code pour windows, c'est FindFirstFile et FindNextFile de l'api win32 ou sinon la classe CFileFind des MFC. Pour un exemple de parcours recurssif de l'arborescence regarde ici http://forum.hardware.fr/forum2.ph [...] &owntopic=
gilou la methode la plus portable est d'utiliser stat() [unix (mac??)] ou _stat() [windows]
 

Citation :

#include <sys/types.h>
#include <sys/stat.h>
 
void main( void )
{
   struct stat buf;  // windows: struct _stat buf;
   int result;
 
   /* Get data associated with "stat.c": */
   result = stat( "le_full_path_du_fichier", &buf );
   // windows: result = _stat( "le_full_path_du_fichier", &buf );
 
   /* Check if statistics are valid: */
   if( result != 0 )
   // le fichier n'existe pas...
}


A+,

Fab51 Et comment on fait pour faire scanner au programme un répertoire précis?
Dav Vador Avec Turbo pascal, y'avait findfirst et findnext pour scanner 1 rep. Avec Borland C++, je pense que ces routines existent aussi, mais je ne suis pas sur...
barbarella oulala,
ça fait un b
out de temps que je n'ai pas fais ça et encore c'était sous dos :D. A moins qu'il existe une fonction toute prete, tu ne peux scanner que répertoire par répertoire.
 
Le truc c'est de faire une fonction recursive, mais bon s'il y avait quelqu'un qui ait travaillé récement la-dessus ça serait mieux que moi.
Fab51 Oui, je suis tout à fait d'accord avec toi!
Euh... encore une ch'tite chose, comment on fait pour dire au prog de scanner tel ou tel répertoire du disque (ou même le disque entier d'un seul coup si ça existe!!!!)?
barbarella he,
 
faut pas avoir honte de débuter, mais en info faut tester, c'est pas 100 fois sur le métier, ... mais 1000 fois.
Fab51 Ah oui c bon c cool ça marche! J'avais toujours laissé les "" c t pour ça. Sorry Dav Vador!
Dav Vador char chemin[256];
scanf("%s", &chemin);
fopen(chemin,"rt" );
 
Chez moua, sa marche.
Fab51 Bon première chose, c'est pas la peine de faire ton malin, tu vois bien que je débute. Et deuxièmement j'ai bien essayé de mettre ch et ça marche pas!!!
barbarella humm,
 
bon en premier tu fais un prog avec fopen et pas de fclose. commence deja par ça, parceque ca fait pas honneur au forum :D
 
ensuite en C que tu donnes juste le nom d'une chaine en param ça correpond en fait a son adresse c'est pas comme avec les int, long ou char (pour un carac seul)
 
alors essaie on va quand même pas l'essayer pour toi :D
Dav Vador

fab51 a écrit a écrit :

Non... à mon avis quand je met juste ch ça cherche le fichier s'appellant "ch" et pas "la valeur de ch".  



Je vais faire un tour dans le source de mon prog, et je te dis koman G fais.

Fab51 Non... à mon avis quand je met juste ch ça cherche le fichier s'appellant "ch" et pas "la valeur de ch".
Dav Vador Si tu mets ch à la place des ???, ça ne marche pas?
Fab51 Ah ouais, si c pas le même problème qu'avec fopen ça peut être bon. Comment elle marche cette fonction?
__Lolo__ y a la fonction "access" definie ds stdio.h pr verifier l'existence d'un fichier
barbarella heu,
 
voici un exemple d'utilisation d'une fonction fopne
 
#include <stdio.h>
 
int main(void)
{
   FILE *in, *out;
 
   if ((in = fopen("\\AUTOEXEC.BAT", "rt" ))
       == NULL)
   {
      fprintf(stderr, "Cannot open input file.\n" );
      return 1;
   }
 
   if ((out = fopen("\\AUTOEXEC.BAK", "wt" ))
       == NULL)
   {
      fprintf(stderr, "Cannot open output file.\n" );
      return 1;
   }
 
   while (!feof(in))
      fputc(fgetc(in), out);
 
   fclose(in);
 
   fclose(out);
   return 0;
}
Fab51 #include <stdio.h>
 
 int main(void)
{ char ch[80];
 
  printf("*-*-*-*-* --Recherche d'un fichier-- *-*-*-*-*\n\n" );
  printf("Ecrivez le nom du fichier a chercher : \n" );
  scanf("%s", &ch);
  printf("Recherche du fichier %s :\n",ch);
    if (fopen("????????","r" ) == NULL) {printf("Ce fichier n'existe pas!\n" );}
      else printf("Ce fichier existe!\n" );
  return 0;
}
 
-----------------------------------------------------------------
Voilà le code source du prog (pas définitif j'en ai bien peur...).
Fab51 Voilà la fonction fopen : fopen("NOMDUFICHIER","R" ). Bon j'ai mis "r" mais ça aurais pu être autre chose. Enfin dans mon cas c'est bien "r"...
Le but de mon programme (en C) est d'ouvrir un fichier dans le but de savoir s'il existe.
Donc je rentre le nom du fichier avec la commande scanf (type chaine de caractère) et mon problème est donc de faire figurer ce nom de fichier comme une chaine de caractères à la place de NOMDUFICHIER dans la commande fopen.
or il est impossible de faire :" fopen ("%s","r",filename) " puisque là il y aurais trop de paramètre dans la fonction fopen...
Please aidez moi!!!!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)