Accueil > Forum > > > > fichiers en C
fichiers en C
dimanche 26 juillet 2009 à 00:24:48 |
fichiers en C

boualiasma
|
Salut,
1) Dans mon travail, j'utilise des fichiers.
je crée un fichier "essai.txt" pour le remplir
fp = fopen("essai.txt","w");
// je fais des traitements
......fprintf(fp,"hhhhhhhhhhh");
//je ferme le fichier
fclose(fp);
//je veux lire ce fichier
rewind(fp);
fp = fopen("essai.txt","r");
//lire de ce fichier
while(fgets(s,100,fp));
...
fclose(fp);
Comme vous remarquez j'ouvre plusieurs fois le même fichier et je les ferme plus que fois.
Comment je vais résoudre ce problème d'ouverture et fermeture plus que
fois ? Quel mode à choisir d'ouverture pour créer un fichier puis lire de ce fichier ?
2) Je voudrais positionner sur la ligne numéro k au lieu de lire ligne par ligne jusqu'à ligne numéro k. Alors , comment je positionne directement sur le k ème ligne du
fichier ?
3) Est ce que on peut faire l'union, l'intersection et la différence
entre les lignes de deux fichiers qui ont le même format au niveau contenu?
Merci.
|
|
lundi 27 juillet 2009 à 09:04:18 |
Re : fichiers en C

TychoBrahe
|
Salut,
1) "rw" avec un fseek pour revenir au début après avoir écrit devrais fonctionner. Après, normalement si tu as écrit dans le fichier tu n'as pas besoin de le relire pour retrouver tes données, ce qui serait mieux vu que la lecture/écriture dans des fichiers prend beaucoup de temps.
2) Si tu as compté le nombre de caractères écrits, un fseek est suffisant.
3) Oui, mais il te faut le coder.
|
|
lundi 27 juillet 2009 à 10:05:26 |
Re : fichiers en C

boualiasma
|
Salut,
1) "w+" çà marche pour l'écriture et lecture ?
2)
j'ai un fichier contient deux champs: un objet (un entier de taille
10) et une valeur (une chaine de caractère de taille 20).
je remplie mon fichier suivant le format suivant:
fprintf (fp, "%10d%20s\n",objet, valeur);
Comment utiliser fseek() pour positionner sur la troisième ligne par exemple ?
3)
J'ai deux fichiers texte "fich1.txt" et "fich2.txt".
Les deux fichiers ont le même type au niveau contenu puisque chaque ligne est formé par une chaine caractère. Sachant que le contenu de "fich2.txt" est toujours inclus dans "fich1.txt"
Par exemple:
fich1.txt
"Bonjour"
"Bonsoir"
"Salut"
"Bye"
"Bienvenue"
fich2.txt
"salut"
"bye"
Je voudrais sauvegarder dans un autre fichier "diff.txt" qui contient les chaines qui existent dans "fic1h.txt" et non dans "fich2.txt".
donc, le résultat est dans "diff.txt" :
"Bonjour"
"Bonsoir"
"Bienvenue"
Mais, moi j'obtiens par mon suivant:
"diff.txt":
"Bonjour"
Code C/C++ : ....
void main()
{
....
...
fp1=fopen("fich1.txt","r");
fp2=fopen("fich2.txt","r");
fp3=fopen("diff.txt","w");
while (fgets(ch,100,fp1))
{
sscanf(ch,"%s",att1);
while(fgets(s,100,fp2))
{
sscanf(s,"%s",att2);
if(memcmp(att2,att1,strlen(att1))!= 0)
fprintf(fpNS,"%s\n",att1);
}
}
fclose(fp1,fp2,fp3);
}
- Avez-vous une idée ou autre solution mieux?
- le but de ce programme est de faire la différence alors quelle modification à faire pour aboutir l'union et l'intersection entre les deux fichiers ?
C'est çà dire:
"union.txt"
"Bonjour"
"Bonsoir"
"Salut"
"Bye"
"Bienvenue"
"intersection.txt"
"salut"
"bye"
Autre questions:
- chaque ligne du fichier contient une chaine de caractère de même taille. je voudrais obtenir dans un autre fichier ou dans le même fichier le même contenu tout en séparant las caractère du la chaine par un espace.
par exemple "test.txt":
aaaaa
ahkhi
kjhgu
oijjm
kklkl
ce fichier devient:
a a a a a
a h k h i
k j h g u
o i j j m
k k l k l
Il y a une fonction définie en C ?
S'il vous plaît, pouvez vous m'aider ?
Merci.
|
|
lundi 27 juillet 2009 à 10:15:29 |
Re : fichiers en C

TychoBrahe
|
Salut,
1) Oui en effet.
2) fprintf() retourne le nombre de caractères écrits.
3) Il existe un programme nommé diff qui fait tout celà, tu peux t'en inspirer.
"Il y a une fonction définie en C ?"
Non.
"S'il vous plaît, pouvez vous m'aider ?"
malloc donc une chaîne 2 fois plus grande que la première (sans oublier de la place pour le \0) et remplis la correctement, puis écrit la dans le fichier. Ainsi tu évite de faire des tonnes d'appels système.
|
|
lundi 27 juillet 2009 à 20:32:26 |
Re : fichiers en C

boualiasma
|
Salut,
- comment vous allez utiliser fseek() pour positionner sur le troisième ligne par exemple ?
- pouvez vous déposer le code du programme "diff"qui fait la différence entre deux fichiers ?
Merci.
|
|
mardi 28 juillet 2009 à 00:05:29 |
Re : fichiers en C
|
Cette discussion est classée dans : fichier, ligne, lire, fichiers, fp
Répondre à ce message
Sujets en rapport avec ce message
Lire toutes les chaines d'un fichier [ par JMGR ]
Salut,J'ai fait un programme qui charge toutes les chaines séparées par des espaces, et la boucle for ne se termine jamais, car la dèrnière chaine se
Lire dans un fichier [ par SfyLer ]
C'est bon j'ai fini mon programme ! enfin presque ! :')J'aimerais lire dans un fichier, donc je l'ouvre et j'utilise ceci:char szBuffer[5000];while(!(
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
Tableau multidimensionel et fichiers [ par AngeloVivaldi ]
slt à tous.Voila, je voudrai mettre dans un tableau multidimensionel chaque ligne d'un fichier, puis modifier une ligne du tableau pour le réécrire da
Lecture d'un fichier via HTTP [ par koze ]
Bonjour, mon application a besoin d'aller lire un fichier sur un serveur distant. J'utilise les API suivantes : InternetOpen InternetConnect HttpOp
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 dans un fichier ligne par ligne [ par curator68 ]
Voilà, j'ai un fichier sur mon disque, et j'aimerai lire le contenu ligne par ligne dans mon programme. J'utilise Visual C++ de Visual Studio 6.0 sp5.
Lire dans un fichier [ par Psyc0s ]
J'ai un fichier dans lequel je stock des log donc il n'a jamais le meme nombre de ligne. J'aurais besoin de mettre chacque ligne dans une variable(di
lire un fichier txt ligne par ligne [ par lapinrose67 ]
Bonsoir,Je developpe un logiciel en C sous Linux, voila mon problème:Je dois lire un fichier texte ligne par ligne et placer chacune d'entre ellesdans
lire fichier ligne par ligne [ par mat74 ]
salut a ts je voudrai savoir comment je pourrai lire un fichier lignes par lignes . par exemple une fonction qui me permerttrai de recuperer la ligne
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|