Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : SOS manque d'inspiration [ Archives / Au secours ] (graall)

jeudi 21 octobre 2004 à 16:59:41 | SOS manque d'inspiration

graall

J'ai besoin de faire un petit programme (en mode console) qui demande à l'utilisateur de saisir le nom d'un fichier et ensuite, qui vérifie si ce fichier existe.
Je ne vois pas du tout comment faire.
J'ai essayé de m'aider de cette source : http://www.cppfrance.com/code.aspx?ID=9263 mais je n'arrive pas à manipuler les const char.

Voici un exemple des essais que j'ai fais :


#include <conio.c>

bool fileexists(char file[100])
{
/* c'est ici que je ne sais pas quoi mettre */
}

int main()
{
printf("Tapez le nom d'un fichier.\n");
char fichier[100];
scanf("%s",&fichier);
if (fileexists(fichier))
printf("\nLe fichier existe.");
else
printf("\nLe fichier n'existe pas.");
getch();
}


merci d'avance

jeudi 21 octobre 2004 à 17:24:40 | Re : SOS manque d'inspiration

asmanur

essaie
FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;

jeudi 21 octobre 2004 à 18:54:35 | Re : SOS manque d'inspiration

djl

asmanur > l'inexistance d'un fichier n'est pas le seul cas ou son ouverture est impossible (par ex si il est ouvert en mode exclusif par un autre processus)

faudra passer par un appel systeme, sous windows win32, de mainiere portable voir chez POSIX

jeudi 21 octobre 2004 à 20:43:05 | Re : SOS manque d'inspiration

DeAtHCrAsH

Une maniere simple de procédé, consiste a prendre le chemin complet et a utiliser l'API FindFirstFile() puis regarder le résultat.

Shell

vendredi 22 octobre 2004 à 07:41:37 | Re : SOS manque d'inspiration

asmanur

Ouep Je sais mais c quand même plus simpe que d'utiliser win surtout si on es encore sous dos

samedi 23 octobre 2004 à 15:47:54 | Re : SOS manque d'inspiration

plus_plus_fab

FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;

Si le fichier n'existe pas, il est crée, donc ça ne teste pas s'il existait déjà.
La seule manière de faire, c'est de s'adresser au systeme de fichier.

sur systemes UNIX (qui se conforme donc au standard POSIX), on peut faire qqchose comme ca : (en C, non testé)

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>

void main(int argc,char** argv)
{
struct stat stfile;
if(stat( argv[1], &stfile) == -1)
{
fprintf(stderr,"acces refusé à %s", argv[1])
}
if( (stfile.st_mode & S_IFMT) == S_IFREG) /* test pour un fichier régulier */
{
printf("le fichier regulier %s existe",argv[1]);
}
}

je pense que errno doit etre positionné, on doit pouvoir afficher un diagnostic complementaire avec perror.

samedi 23 octobre 2004 à 15:48:18 | Re : SOS manque d'inspiration

plus_plus_fab

FILE* f= fopen(fichier,"rb");
if(!f)return false;
else return true;

Si le fichier n'existe pas, il est crée, donc ça ne teste pas s'il existait déjà.
La seule manière de faire, c'est de s'adresser au systeme de fichier.

sur systemes UNIX (qui se conforme donc au standard POSIX), on peut faire qqchose comme ca : (en C, non testé)

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>

void main(int argc,char** argv)
{
struct stat stfile;
if(stat( argv[1], &stfile) == -1)
{
fprintf(stderr,"acces refusé à %s", argv[1])
}
if( (stfile.st_mode & S_IFMT) == S_IFREG) /* test pour un fichier régulier */
{
printf("le fichier regulier %s existe",argv[1]);
}
}

je pense que errno doit etre positionné, on doit pouvoir afficher un diagnostic complementaire avec perror.



Cette discussion est classé dans : fichier, code, printf, existe, char


Répondre à ce message

Sujets en rapport avec ce message

Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM [debutant]attribution dun mot a une char et comparaison ... [ par DarkEbola ] en fait, jaurais aimé attribuer du texte a une charkke chose comme 500 ou 600 caracteres maximais jarrive pas a lui attribuer plus de 1 Charsuis-je pl Erreurs de compilations bizarres avec Visual C++ 6 [ par VTS_35 ] Bonjour,G encore des problèmes de compilation avec mon programme. Je me suis rendu compte que le programme allait devenir balaise, alors j'ai décidé d Je cherche l'erreur [ par ScorpionTiti ] J'ai effectué un programme qui me permette d'écrire dans un fichier et je l'ai compilé. En le lançant, il m'envoie un message d'erreur mais je ne sais CRYPTAGE !!! [ par megaman ] Voilà j'essai de faire un log de cryptage à l'aide de fonctions et procédure.Les fonctions et procédures :Une fonction qui retourne le nom de fichieru probleme de if [ par cobra176 ] bonjour tout le monde j'ai un code qui me permet d'afficher les lignes dans un fichier contenat les mots que j'ai choisit et si il n'y a pas le mot re Problème de lecture fichier [ par nach73 ] J'ai un enorme probleme je n'arrive pas a lire dans mon fichierVoila la partie de mon programme.Si quelqu'un peux m'aide.Merci.//ouverture du fichier Aide pour enregistrement fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;< Copier/coller de données contenue dans un fichier en C [ par petit_mateo ] Voici mon code :#include #include #include int x(){   char ANCIEN[] = "resta.txt";   char NOUVEAU[] = "restb.txt";   FILE *INFILE, *OUTFILE;<


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.