Mettre le contenu d'un fichier .txt dans une variable

Résolu
Signaler
Messages postés
46
Date d'inscription
samedi 29 mai 2004
Statut
Membre
Dernière intervention
16 août 2006
-
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013
-
Bonsoir,



Comment on peut faire pour lire le contenu d'un fichier txt ,le mettre
dans une variable,puis ecrire cette variable dans un autre fichier txt?



5 réponses

Messages postés
56
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
30 juin 2008

// lire
FILE fp;
char *buf;
int taille;

fp = fopen("FileName", "rb");
fseek(hfile, 0, SEEK_END);
taille = ftell(hfile);
fseek(hfile, 0, SEEK_SET);

buf = (char*) malloc(taille);
fread(buf, taille, 0, hfile);
fclose(hfile);

free(buf);

// écrire

FILE fp;
int taille;

fp = fopen("FileName", "rb");
fwrite(buf, strlen(buf), 0, hfile);
fclose(hfile);

Voila, j'espere que c'est ce que tu attends

Amicalement,
The Destiny
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013
1
en utilisant les librairies standards :

#include <stdio.h> //acces aux fichiers
#include <stdlib.h> //Allocation dynamique

void fontion( )
{
FILE *Fichier;
int taille;
char *tabFichier;

//Recuperation de la taille actuelle
Fichier = fopen("c:/monfichier.txt", "r");
fseek(Fichier, 0, SEEK_END);
taille = ftell(Fichier);
fclose(Fichier);

//Allocation dynamique
tabFichier = (char*) malloc(taille);

//Copie en memoire du fichier
Fichier = fopen("c:/monfichier.txt", "r");
fread(tabFichier, 1, taille, Fichier);
fclose(Fichier);

//Copie dans un autre fichier
Fichier = fopen("c:/monautrefichier.txt", "wb");
fwrite(tabFichier, 1, taille, Fichier);
fclose(Fichier);

//desallocation
free(tabFichier);
}

ce code est plus du C que du C++ mais il fonctionne partout car standar.
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013
1
LOL bon vla le bug, mon msg apparaissait pas alors je l'ai resend en le colorant et la surprise, j'vois mon message plus 2 autres.Aux passage the destiny, quand tu fais un malloc, oublie pas de faire un free ^^.
Quand au doublon de mon message, si un admin voulais en supprimé un, merci ;)
Messages postés
56
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
30 juin 2008

Le free(buf) y ait, mais en faite j'ai séparé les 2 exemples

Amicalement,
The Destiny
Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013
1
OUPSSSS, exacte, j'avais mal vu, vraiment désolé !