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

Réseau C Discussion :

probleme d'ouverture et de lecture de fichiers


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut probleme d'ouverture et de lecture de fichiers
    Salut, je suis sur une appli qui nécessite de parcourir des fichiers avant de les découper pour les envoyer par blocs, et j'ai un petit soucis.

    En gros, je veux ouvrir un fichier quelconque (txt, jpg, etc...), lire le fichier par paquet de N caractères, et ensuite faire d'autres traitements qui ne sont pas importants ici.
    Voici mon code :

    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
    int NbLu;
    char buffer[TAILLEBLOC];
    FILE *fp = fopen (nomFichier, "r");
    if (fp != NULL)
    {
    	int num = 0;
    	// on lit par paquet de TAILLEBLOC caracteres
    	while( (NbLu = fread(buffer, sizeof(char), TAILLEBLOC, fp)) != 0 )
    	{
    		buffer[NbLu] = '\0';
    		printf("%s\n", buffer);
    		/* traitement */
    	}
    }
    fclose(fp);
    Et pour l'instant, lorsque je teste sur 3 fichiers txt et un fichier jpg (de petite taille), j'ai des incohérences. Un fichier texte semble ne pas s'ouvrir, de même que l'image jpg, et lorsque le fichier est ouvert, ça ne correspond pas toujours au fichier existant...

    J'ai mal fait quelque chose ?

    Au passage, pourrait-on me dire s'il serait intelligent (ou pas) d'ouvrir en mode binaire ? Quelle différence ça ferait ?


    Merci d'avance !

  2. #2
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Citation Envoyé par zarbiman Voir le message
    Et pour l'instant, lorsque je teste sur 3 fichiers txt et un fichier jpg (de petite taille), j'ai des incohérences. Un fichier texte semble ne pas s'ouvrir, de même que l'image jpg, et lorsque le fichier est ouvert, ça ne correspond pas toujours au fichier existant...
    Il faudrait donner plus de détails ou des exemples d'incohérences.

    Pour commencer, juste une remarque : mettre le fclose dans le if (fp != NULL) ou alors, faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (fp == NULL) {
        fprintf(stderr,"impossible d'ouvrir le fichier\n");
        exit(EXIT_FAILURE);
    }
    // suite du prog si le fichier s'est bien ouvert
    fclose(fp);

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    d'autre part, une autre remarque :

    un printf affiche des caractères, alors que fread lit du binaire.. De plus, un fichier Jpeg est en binaire.

    Donc il est tout à fait normal que le printf ne donne pas le contenu..tel que tu le vois...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Ok pour le fclose, c'est vrai que c'est plus logique de fermer le fichier si on l'a ouvert...

    Pour les incohérences en question, en fait ce que je reçois correspond à un message que j'envoie par socket à un autre endroit du code (et bizarrement que je n'ai pas encore envoyé au moment où mon bout de code s'exécute).
    Donc c'est sûrement un problème d'allocation de mémoire ou quelque chose du genre, mais je n'arrive pas à voir où ça peut être...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Donc il vaut mieux ouvrir mes fichiers en binaire, mais si je fais ça, je peux récupérer ce que je lis dans un char * ?
    Moi je fais des printf pour les tests.

    Le but de l'appli c'est de lire des fichiers (en binaire donc), de transférer (par texte) en tcp puis de reconstituer le fichier (fwrite en binaire également)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Euh je crois avoir compris pourquoi certains problèmes se posaient (comme toujours c'est des trucs très cons, le chemin était mauvais et il se trouvait qu'il y avait des fichiers avec les mêmes noms dans le mauvais répertoire)

    Je corrige tout ça et s'il y a encore des problèmes de fopen, je vous préviens !

Discussions similaires

  1. Probleme avec script - Concatenation et lecture de fichier
    Par Kassar dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 07/10/2012, 20h41
  2. [VC.Net++] Probleme d'ouverture d'un fichier ini !
    Par jlassira dans le forum VC++ .NET
    Réponses: 9
    Dernier message: 03/02/2006, 11h57
  3. Probleme de lecture de fichier
    Par ArkAng3 dans le forum MFC
    Réponses: 9
    Dernier message: 11/12/2005, 20h47
  4. Lecture de fichier : Probleme avec les string
    Par soda_o_rat dans le forum SL & STL
    Réponses: 10
    Dernier message: 11/08/2005, 22h59
  5. [vb.net][xml] probleme de lecture de fichier
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/07/2005, 11h51

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