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;
} |
Partager