begin process at 2012 05 30 03:12:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Lire et écrire un fichier .txt avec du C


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire et écrire un fichier .txt avec du C

dimanche 23 octobre 2005 à 14:32:21 | Lire et écrire un fichier .txt avec du C

Hkz

Bonjours a tous
J'ai codé un programme qui code du texte, mais pour l'instant il faut lui rentrer le texte par le clavier se qui n'est pas très pratique. Je voulais savoir si quelqu'un peut m'éclairer pour récupérer le texte a l'intérieur d'un fichier TXT le rentrer dans une variable et une fois coder par mon programme pouvoir écrire le texte coder dans un nouveau fichier .txt
Petite précision je voudrai faire sa en C si c possible

dimanche 23 octobre 2005 à 15:04:15 | Re : Lire et écrire un fichier .txt avec du C

vangeurmasker

Membre Club
Réponse acceptée !
En C tu a plusieurs fonction pour gérer les fichier (l'extention ne change rien) :
- #include "stdio.h";
- tout d'abord tu crée un variable de type fichier:
FILE * monfichier;
- ensuite tu ouvre ton fichier
monfichier=fopen("nom du fichier","mode d'ouverture");
"mode d'ouverture" est une chaine de caractères ou tu peut rentrer plusieurs parametres
w pour écriture le fichier est effacé si il existe déja
r pour lire. le fichier doit exister.
b ou t pour le mode binaire ou texte (si tu a écrit dans ton fichier avec bloc note utilise le mode binaire)

tu peut combiner les différents modes : "wb" "rt"...
- pense a tester si ton fichier a été ouvert if(!monfichier) merde;
- pour lire :
char alire[50];
fread(alire , 1 , nbdecaractèresalire , monfichier);
-pour écrire :
char aecrire[50]="Je veux écrire ceci";
fread(aecrire, 1 , strlen(aecrire), monfichier);

autre fonction utile
fflush(monfichier); permer d'écrire réelement dans le fichier (sinon les données restent dans la ram)

et enfin on ferme le fichier
fclose(monfichier);




dimanche 23 octobre 2005 à 15:07:20 | Re : Lire et écrire un fichier .txt avec du C

Joky

Membre Club
Hum Hum :)

HANDLE hFile = CreateFile( szFileName,
                                              GENERIC_READ,
                                              FILE_SHARE_READ,
                                              NULL,
                                              OPEN_EXISTING,
                                              FILE_ATTRIBUTE_NORMAL,
                                              NULL );

if(hFile == INVALID_HANDLE_VALUE)
{
       MessageBox(0, "Erreur lors de l'ouverture du fichier !", "Erreur", 0x10);
       return 0;
}

char *TextInFile;
DWORD dwByteReaden;
DWORD dwByteToRead = GetFileSize(hFile);

TextInFile = (char*)malloc(iSize+1);

if(!ReadFile( hFile, TextInFile, dwByteToRead, &dwByteReaden, NULL))
{
        CloseHandle(hFile);
        return 0;
}

if(dwByteToRead != dwByteReaden)
{
    MessageBox(0, "Erreur lors de la lecture du fichier !", "Erreur", 0x10);
    CloseHandle(hFile);
    return 0;
}

TextInFile[dwByteToRead] = 0;

Voila maintenant TextInFile contient les données du fichier nommé ici : szFileName;

if(!Meilleur("Joky")) return ERREUR;<

dimanche 23 octobre 2005 à 15:09:37 | Re : Lire et écrire un fichier .txt avec du C

Joky

Membre Club
et le free(TextInFile) à la fin qui va avec ! :)
Je l'oublie toujours lui

PS : C'est vrai que fopen() etc... c'est beaucoup plus simple à comprendre, mais bon autant partir dans le concret une fois pour toute

if(!Meilleur("Joky")) return ERREUR;<

dimanche 23 octobre 2005 à 15:20:02 | Re : Lire et écrire un fichier .txt avec du C

Hkz

Sest vrai que j'ai pas tout compris a ton code .... tu pourras me l'expliquer si ça te dérange pas ? autremement c vrai que la solution de vangeurmasker me convien mais je suis curieux de savoir comment ton code fonctionne .
dimanche 23 octobre 2005 à 15:36:37 | Re : Lire et écrire un fichier .txt avec du C

Joky

Membre Club
Réponse acceptée !
Bé d'abord
On va récupérer le HANDLE du fichier souhaité ( l'identifiant en gros )
Donc on utilise CreateFile avec les arguments qui vont avec et qui sont disponible sur msdn si tu veux plus de détails

Donc apres on teste si le handle que l'on a récupéré est bien valide
INVALID_HANDLE_VALUE

On déclare ensuite 3 variables :
char *TextInFile; //C'est un pointeur qui contiendra les données du fichiers

DWORD dwByteToRead; //C'est le nombre d'octet à lire, on l'obtient grace à GetFileSize(HANDLE);
DWORD dwByteReaden; //C'est un paramètre que ReadFile initialisera après l'éxecution de la fonction, il renvoit le nombre d'octet lu

Donc si le nombre d'octet à lire est différent du nombre d'octet lu, c'est qu'il y a bel et bien un problème !
Donc on ferme le Handle du fichier avec CloseHandle(HANDLE);

J'ai passé biensur le malloc( ... ) qui est supposé connu bien entendu ;)

if(!Meilleur("Joky")) return ERREUR;<

dimanche 23 octobre 2005 à 15:45:16 | Re : Lire et écrire un fichier .txt avec du C

Hkz

Ok merci pour les précisions
dimanche 23 octobre 2005 à 16:26:07 | Re : Lire et écrire un fichier .txt avec du C

Matt67

bonjour,

joky a dit : "PS : C'est vrai que fopen() etc... c'est beaucoup plus simple à comprendre, mais bon autant partir dans le concret une fois pour toute"

et le malloc alors...

Matt...


Cette discussion est classée dans : fichier, écrire, texte, lire, txt


Répondre à ce message

Sujets en rapport avec ce message

lire un fichier texte carachtère par carachtère et faire des modif [ par chico79 ] Bonjour,KK1 peut me dire comment on fais pour lire un fichier texte en héxadecimal et faire des modifications héxadecimales sur le fichier?merci d'ava Lire un fichier texte ! [ par arconius ] Voilà j'ai créer un jeux galaxian dans lequel je marque des points en tuant des ennemis. J'arrive à eccrire mon score dans un fichier texte mais je n' lire/ecrire fichier texte a plusieurs colonnes [ par denini ] voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier ecrire et lire un fichier texte [ par denini ] voilà, j'aimerais ecrire et lire sur un fichier texteJe voudrais stocker une date, une valeur et un nbet ce pour N clients.Je voudrais que le fichier Ouvrir et lire un fichier txt [ par pirana ] Bonjour à tous jaimerai faire un programme qui me permet d'ouvrir un fichier txt puis le lire jusqua la fin( normalement avec une boucle while(!feof(f Lire un fichier Texte Ligne par ligne [ par Ricpperso ] Bonjour,bon je fai un pti proget je voudrai savoir comment on fais pour lire un fichier Texte ligne par ligne, avec si possible le Cfile.merci d'avanc Lire une ligne d'un fichier texte [ par CassusGreg ] Salut à tous,Est-ce-qu'il existe une fonction pour lire une ligne de texte (terminé par 0x0D 0x0A) dans un fichier?Je suis sous VC++ 6merci Lire un fichier txt contenant des nombres [ par wwalker ] Je souhaite qu'une variable integer prennent successivement les valeurs contenus dans un fichier txt.Forme du fichier nombres.txt:123445677890...Voila extraction d'un texte dans un fichier *.txt [ par sir51 ] bonjour, je suis etudiant, et je debute le c++. J'ai un DM a rendre .Sujet :extraire un champ texte dans un fichier txt prealablement creé... Help!!! comment lire ou écrire à un fichier dans la mémoire ? [ par ilimo ] bonjour,je sais ouvrir un fichier dans la mémoire..mais comment le lire à partir de cette même mémoire ?merci pour votre aide ...-------------j'utilis


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,145 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales