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

Résolu
hansmeier Messages postés 46 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 16 août 2006 - 4 juin 2005 à 21:45
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 - 5 juin 2005 à 07:25
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

cs_thedestiny Messages postés 56 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 juin 2008
4 juin 2005 à 22:52
// 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
3
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
4 juin 2005 à 22:55
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.
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
4 juin 2005 à 22:58
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 ;)
0
cs_thedestiny Messages postés 56 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 juin 2008
4 juin 2005 à 23:08
Le free(buf) y ait, mais en faite j'ai séparé les 2 exemples

Amicalement,
The Destiny
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
5 juin 2005 à 07:25
OUPSSSS, exacte, j'avais mal vu, vraiment désolé !
0
Rejoignez-nous