IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

comment ecrire des noms de fichier de plus de 8 caracteres en C ?


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut comment ecrire des noms de fichier de plus de 8 caracteres en C ?
    Bonjour,
    j'ai un programme qui prend en paramètre un fichier texte dont le nom est de plus de 8 caractères.

    Je récupère le nom, je traite le contenu du fichier, je réécris le fichier transformé avec le même nom mais en changeant l'extension.

    PROBLEME :
    Mon programme C tronque le nom du fichier écrit à 8 caractères !(plus l'extension.)

    QUESTION :
    Est-ce du à mon compilateur antédiluvien ? (Turbo C) ou à mon code ?

    voici un extrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /* on ouvre le fichier source */
    	in = fopen(argv[1],"r");
    	if (in == NULL)
    	{
    		fprintf(stderr,"impossible d'ouvrir le fichier source : %s\n", argv[1]);
    		exit(2);
    		/* code erreur 2 : impossible d'ouvrir le fichier source */
    	}
    	/* on lit le fichier source  */
    	c = getc(in);
    	while(c!='\n') c = getc(in);
    ensuite je traite le contenu du fichier et je crée un nouveau fichier
    j'ai stocké le nom de foichier dans la variable "destination"
    je l'affiche complement, donc cette variable a plus de 8 carcacteres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	out=fopen(Destination,"w");
    	if (out==NULL)
    	{
    		fprintf(stderr,"impossible d'ecrire le fichier destination : %s\n",Destination);
    		exit(3);
    		/* code erreur 3 : impossible d'ouvrir le fichier destination */
    	}
     
    	/* On copie le contenu de entete dans destination (les declarations xml et la balise racine ouvrante sans la valeur de son attribut ) */
    	c = getc(in);
    	while(c!=EOF)
    	{
    	putc(c,out);
    	c = getc(in);
    	}
    etc ...
    ensuite je le ferme et le fichier est complet, mais son nom est tronqué à 8 caractères

    Merci de votre aide
    Frantz 69

  2. #2
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Les premières versions de MS-DOS ne permettent pas d'utiliser des noms de fichier de plus de 8 caractères (et 3 pour l'extension). Turbo C génère des exécutables MS-DOS, ces programmes sont donc censés être utilisés sous DOS et non sous Windows XP ou Linux. Sous Windows XP, Vista, etc. ça marche encore car ils savent faire tourner des applications MS-DOS grâce à un système de machine virtuelle mais si tu veux créer de vraies applications Windows, utilise un compilateur pour Windows. Code::Blocks t'aimes pas ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Code::Blocks
    Merci, je m'en doutais, je vais essayer Code::Blocks
    Merci à toi

    Frantz 69

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut je ne trouve pas l'exécutable DEBUGGER dans Code::Blocks
    Merci,
    J'ai réussi à créer un exécutable qui prend en compte les noms de fichiers longs !

    Par contre, je ne trouve pas l'exécutable DEBUGGER a utiliser dans Code::Blocks, il n'est pas fourni lors de l'installation de Code Blocks
    peux-tu m'aider again ?
    merci

    Frantz69

    pour info : www.codeblocks.org

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Debugger installé dans Code::Blocks
    C'est bon j'ai trouvé, il fallait installer gdb le debugger de MinGW
    http://prdownloads.sf.net/mingw/gdb-6.3-2.exe

    voilà, c'est tout bon !

    bonne journée
    Frantz69

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Ecrire des noms de fichiers sur Excel
    Par Tom dB dans le forum MATLAB
    Réponses: 22
    Dernier message: 28/05/2013, 17h22
  2. Réponses: 3
    Dernier message: 26/03/2012, 22h47
  3. Comment ecrire le nom d'un fichier dans un fichier excel
    Par proteine1024 dans le forum VBScript
    Réponses: 0
    Dernier message: 14/10/2009, 15h45
  4. Réponses: 5
    Dernier message: 22/03/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo