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 :

Probleme lecture pdf C


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 2
    Par défaut Probleme lecture pdf C
    Bonjour,
    j'ai un probleme en langage C pour lire correctement un fichier pdf !
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
     
    void lire(FILE* P_FICHIER, char* texte, int longueur)
    {
        char* temp;
        temp=(char*)malloc(longueur*sizeof(char*));
     
        while(fgets(temp, longueur, P_FICHIER))//on lit ligne par ligne, tant que le fichier n'est pas fini
        {
            strcat(texte, temp);//on rajoute ensuite la ligne qui vient d'être lue
        }
    }
     
     
    char* lireFichier() //la fonction qui lit et retourne une chaine de caractere lue dans un fichier
    {
        char* nomFichier = "rapportprojet.pdf";
     
     
        /*printf("Entrez le nom du fichier ?\n");
        scanf("%s", nomFichier);*/
     
    	/*printf("Est-ce un fichier binaire? (1/0)\n");
    	scanf("%d", &binaire);*/
     
        FILE *P_FICHIER;
    		P_FICHIER = fopen(nomFichier , "rb");
     
    	if(P_FICHIER==0)//on teste si le fichier n'existe pas
    	{
            printf("Le fichier n'existe pas !");
    		free(nomFichier);
            exit(0);
    	}
     
     
        fseek(P_FICHIER,0, SEEK_END);// on va a la fin du fichier
        long int longueur = ftell(P_FICHIER); // renvoie la taille du fichier en octets
        rewind(P_FICHIER);
     
     
    	char* c; //on declare une chaine de caractere de la longueur du fichier
    	c = (char*)malloc(longueur * sizeof(char));
    	c=c+3; // decalage de 3
     
     
    	lire(P_FICHIER, c, longueur);
    	fclose(P_FICHIER);
     
        printf("lngueur var %d", longueur * sizeof(char));
        printf("lngueur %d", longueur);
    	printf("lngueur lue %d", strlen(c));
     
        FILE *P_FICHIER2;
    		P_FICHIER2 = fopen("test.pdf" , "wb");
        fwrite(c, 1, longueur,P_FICHIER2);
     
    	return c;
    }
     
     
     
    int main(void)
    {
        char *chaine = lireFichier();
        //printf("Chaine lue : %s", chaine);
     
     
     
        system("PAUSE");
    	return 0;
    }
    Cependant cela m'affiche une longueur a lire de 420 000 caracteres, et une longueur de chaine de 230 000. Ce qui fait que le char* que j'utilise est environ a la moitié du fichier quand il s'arrete !
    je ne comprend pas pourquoi ???
    Merci beaucoup de votre aide !

  2. #2
    Expert confirmé
    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 : 39
    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
    Par défaut
    Un fichier PDF n'a pas la même structure qu'un fichier texte. Et puis utiliser fgets sur un flux binaire c'est toujours assez louche. Le plus simple pour toi si tu veux lire un fichier PDF c'est d'utiliser une bibliothèque spécialisée, Haru par exemple. Si tu veux tout faire toi-même, lis d'abord la spécification du format PDF avant d'ouvrir un tel fichier.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Melem Voir le message
    Si tu veux tout faire toi-même, lis d'abord la spécification du format PDF avant d'ouvrir un tel fichier.
    Un peu de lecture : Il y en a pour 1310 pages
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

Discussions similaires

  1. probleme lecture video sur ma page
    Par pippoprod dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/02/2006, 10h00
  2. Probleme lecture fichier acces sequentiel
    Par ouar dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/09/2005, 13h39
  3. Probleme lecture fichier
    Par CaptainChoc dans le forum C++
    Réponses: 5
    Dernier message: 06/03/2005, 10h40
  4. [LG]probleme lecture fichier
    Par yp036871 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2004, 19h22
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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