éviter les symboles dans un nom de fichier.

cobra176 Messages postés 86 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 21 janvier 2009 - 3 févr. 2005 à 15:18
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 4 févr. 2005 à 21:23
Salut

j'ai un programme qui me permet de créer un fichier log puis de le remplir mais quand l'utilisateur mets les symboles >< \ / : , il l'est impossible de créer le fichier
comment t on dire à l'utilisateur qui ne peut utiliser ces symboles ?

le code que j'utilise

printf ("nommer le fichier memoire \n\n");
gets (nom);

strcpy(fullpath2, ".log");
strcat(nom,fullpath2);
strcpy(fullpath, "re");
strcat(fullpath,nom);
system("cls");
ecriture = fopen (fullpath,"w");

le fichier memoire est du type renom.log

merci de votre aide

4 réponses

cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
3 févr. 2005 à 17:52
Bonsoir,



Pourquoi ne pas utiliser le nom de l'application comme fichier log
(application.log), j'ai jamais vu une application qui demandait le nom
du fichier log a l'utilisateur et aussi pourquoi ne pas utiliser
sprintf au lieu de tout ces strcpy, strcat ...

Matt...
0
anarchysniper Messages postés 65 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 29 septembre 2005 1
4 févr. 2005 à 00:25
Si on le permet il doit il y avoir une raison.



Fais un len pour avoir le nombre de caractères de ce que l'utilisateur
a tappé puis une boucle pour tester chacun des caractères avec un
horrible message d'erreur si il repère un de ces caractères.



Ca devrait aller :-)
0
cobra176 Messages postés 86 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 21 janvier 2009
4 févr. 2005 à 11:24
je ne peut pas utiliser le nom de l'aplication ,c'est l'utilisateur qui doit le rendre alors il ne dois pas utiliser les symnoles >< : bref les symbole interdits quand on nomme un fichier
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
4 févr. 2005 à 21:23
Bonsoir,



Essaie ce code qui doit, je pense, correspondre a tes besoins :



#include <stdio.h>

#include <string.h>



int main(void)

{

char szNomFichier[256];

char szFullPath[256];

/* caracteres interdit */

char szCaractereInterdit[] = "\\/:?"<>|";



/* Saisie du nom du fichier */

fgets(szNomFichier, sizeof(szNomFichier), stdin);



/* On vire le retour chariot */

char *p = strchr(szNomFichier, '\n');

if (p != NULL)

*p = 0;

else

return 1;



/* On cherche les caracteres interdit */

if(strcspn(szNomFichier, szCaractereInterdit) != strlen(szNomFichier))

{

puts("Nom de fichier incorrect...\n");

return 0;

}

/* On format le chemin complet */

sprintf(szFullPath, "re%s.log", szNomFichier);

puts(szFullPath);

return 0;

}


Matt...
0
Rejoignez-nous