Accueil > Forum > > > > insérer dans un fichier
insérer dans un fichier
lundi 31 juillet 2006 à 12:18:41 |
insérer dans un fichier

catamenia
|
bonjour, J'arrive à écrire dans un fichier text en c++ grace a writeFile mais ça écrase le text qu'il y a derriere alors que j'aimerais pouvoir insérer dans se fichier. comment faire? merci
|
|
lundi 31 juillet 2006 à 12:43:03 |
Re : insérer dans un fichier

vinc1008881
|
simple en C, il faut faire ceci :
FILE *fichier; if(!fopen("nomdufichier", "a")return 1; /*le a signifie ajout*/ fputs ("cette info sera à la fin du fichier", fichier);
en fait il faut ouvrir ton fichier en mode ajout, ce que la chaine de caractère "a" indique à fopen()
|
|
lundi 31 juillet 2006 à 12:44:41 |
Re : insérer dans un fichier

catamenia
|
je veux pas insérer a la fin mais au milieu
|
|
lundi 31 juillet 2006 à 13:16:27 |
Re : insérer dans un fichier

ElectricalMan
|
regarde ça : http://www.cppfrance.com/infomsg_INSERER-TEXT-DANS-FICHIER_787224.aspx#5
c pour rajouter du texte au début d'un fichier. mais si tu souhaites le faire au mileu, tu devras par exp ; 1- te positionner là où tu veux rajouter du text (pos) 2- copier le reste du text dans un buffer 3- Revenir à pos et faire pareil que si t'étais au début
moi je te file ce que j'ai fait pour le rajout au début d'un fic mais c en C :
//----------------------------------------------------------------- // fonction qui calcul la taille d'un fichier //----------------------------------------------------------------- long tailleFic(FILE* fic) { int caractereActuel=0; long taille=0; rewind(fic); // On revient au début du fichier
// Boucle de lecture des caractères un à un while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier) { caractereActuel = fgetc(fic); // On lit le caractère taille++; }; return taille; }
//----------------------------------------------------------------- // fonction qui rajoute un texte au début d'un fichier //----------------------------------------------------------------- void rajoutTextDansFic(FILE* fic, char str[]) { char *ficBuffer=NULL, strLigne[255]=""; long taille=0; int ligne1=1;
taille = tailleFic(fic); if( (ficBuffer = malloc((taille)*sizeof(*ficBuffer))) == NULL) exit(0);
rewind(fic);
// On copie le contenu de fic dans ficBuffer while( fgets(strLigne, 255, fic) != NULL) { if (ligne1) strcpy(ficBuffer, strLigne); else strcat(ficBuffer, strLigne);
ligne1 = 0; }
rewind(fic); fprintf(fic, "%s", str); // On écrit str au début de fic fprintf(fic, "%s", ficBuffer); // On rajoute après ficBuffer qu'on avait sauvegardée
free(ficBuffer); }
|
|
lundi 31 juillet 2006 à 13:28:14 |
Re : insérer dans un fichier

ElectricalMan
|
oui, une précision :
// ouverture du fichier input en mode r+ if( (fic = fopen("nomDuFichier","r+")) == NULL ) exit(0);
|
|
lundi 31 juillet 2006 à 14:30:01 |
Re : insérer dans un fichier

catamenia
|
ok il y a la méthode SetFilePointer pour définir la ou on va se positionner mais il n'exite pas de GetFilePointer.
Apres avoir copier la fin du fichier dans un buffer, je fais comment pour retourner la ou j'étais étant donné que la copie de la fin du fichier me positionne à la fin du fichier?
|
|
lundi 31 juillet 2006 à 14:37:52 |
Re : insérer dans un fichier

catamenia
|
je doits compter le nombre de caractères écrit depuis le début du fichier?
|
|
lundi 31 juillet 2006 à 14:47:12 |
Re : insérer dans un fichier

ElectricalMan
|
Apres avoir copier la fin du fichier dans un buffer, je fais comment pour retourner la ou j'étais étant donné que la copie de la fin du fichier me positionne à la fin du fichier? >> SetFilePointer(hFile, 0, 0, FILE_BEGIN); puis : SetFilePointer à la pos où t'était...
|
|
lundi 31 juillet 2006 à 16:03:19 |
Re : insérer dans un fichier

SAKingdom
|
En fonction API, ça donne: #define CENTER 50 // Le millieu du fichier pour ce bout de code HANDLE hFile; DWORD size, byte; char *buffer; hFile = CreateFile("Test.txt", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); size = GetFileSize(hFile, 0); SetFilePointer(hFile, CENTER, 0, FILE_BEGIN); buffer = (char*)malloc(size-CENTER); ReadFile(hFile, buffer, size-CENTER, &byte, 0); SetFilePointer(hFile, CENTER, 0, FILE_BEGIN); WriteFile(hFile, "Allo test 123 ", 14, &byte, 0); WriteFile(hFile, buffer, size-CENTER, &byte, 0); free(buffer); CloseHandle(hFile); Ce bout de code ajoutera du texte à la location 50 considérent que c'est le centre du fichier. Si le centre est connue, suffis de modifier CENTER. Sinon, il faut modifier CENTER comme ceci: size/2. Ce sera le centre relatif du fichier. C++ (@++) ___________________________________________ Les plus grands esprits trouvent toujours une solution
[ Lien ]
|
|
lundi 31 juillet 2006 à 16:03:50 |
Re : insérer dans un fichier

SAKingdom
|
En fonction API, ça donne: #define CENTER 50 // Le millieu du fichier pour ce bout de code HANDLE hFile; DWORD size, byte; char *buffer; hFile = CreateFile("Test.txt", GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); size = GetFileSize(hFile, 0); SetFilePointer(hFile, CENTER, 0, FILE_BEGIN); buffer = (char*)malloc(size-CENTER); ReadFile(hFile, buffer, size-CENTER, &byte, 0); SetFilePointer(hFile, CENTER, 0, FILE_BEGIN); WriteFile(hFile, "Allo test 123 ", 14, &byte, 0); WriteFile(hFile, buffer, size-CENTER, &byte, 0); free(buffer); CloseHandle(hFile); Ce bout de code ajoutera du texte à la location 50 considérent que c'est le centre du fichier. Si le centre est connue, suffis de modifier CENTER. Sinon, il faut modifier CENTER comme ceci: size/2. Ce sera le centre relatif du fichier. C++ (@++) ___________________________________________ Les plus grands esprits trouvent toujours une solution
[ Lien ]
|
|
Cette discussion est classée dans : fichier, text, insérer
Répondre à ce message
Sujets en rapport avec ce message
Insérer text dans un fichier ! [ par ElectricalMan ]
slt tt le monde,est ce qu'il y a un moyen d'insérer du texte dans un fichier ss écraser ce qu' y avait ?!//-------------------------------------------
Insérer un fichier png sur son IHM avec visual 2005 [ par Nixeus ]
Bonsoir à tous ! Je construit actuellement une IHM pour une mfc et souhaiterais y mettre des images de types PNG et non BMP, je souhaiterais conna
taille fichier text [ par unionx ]
bonjour a tous les equipes et les membres code-source j'ai un questionquand je creer un fichier *.txt sous linux il me donne une taille de 4ko je pens
Impossible ouvrir fichier en C [ par fredsor ]
Bonjour,Je dois développer une appli en C sous eMbedded Visual C++J'essaye betement d'ouvrir un fichier txt avec la fonction fopen(), mais il passe to
Ecrire un long fichier [ par babaslow ]
Bonjour,Existe-t il un moyen "simple" de créer un fichier texte d'environ 1000 lignes ?Parce qu'avec la fonction TEXT, on ne peut pas dire que ce soit
afficher une image sur un fichier text [ par sarah87 ]
salut,je veux afficher une image jpeg sur un fichier text ,de tel maniere :parcourir tous les pixels,si la valeur de pixel>0,alors copier la valeur s
Text Aleatoire [ par ideosphere ]
Bon voila je voudrai faire un prog ki affiche une ligne choisi aleatoirement dans un fichier text.Je sais comment faire pour afficher tout le contenu
A l'aide !!! j'arrive pas à insérer des guillemets dans fichier texte !!! [ par Ethylotek ]
vici un bout de mon progprintf("Veuillez saisir votre nom:\n");gets(name);fflush(stdin);f=fopen("winnt.txt","wt");fprintf(f," FullName=%s\n",name);fcl
Insérer/supprimer charactères dans un fichier [ par gwenChina ]
Bonjour,En fait je doit aller modifier des charatères a l'intérieur d'un fichier (octet par octet). J'arrive tout a fait à écrire dans le fichier en r
Insérer un ActiveX (ocx) Help svp!!!!!!!!!!!!!!! [ par pepsidrinker ]
Salut tlm;Bah voila, je veux insérer un activex(.ocx fait en vb) dans on appli en c++ ki utilise les mfc evidemment(un appli console ou windows , c s
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
|