Programmation c
Fermé
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
-
19 janv. 2011 à 12:32
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 - 19 janv. 2011 à 22:02
malaik5 Messages postés 258 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 28 novembre 2013 - 19 janv. 2011 à 22:02
A voir également:
- Programmation c
- Application de programmation - Guide
- Programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation binaire - Guide
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
5 réponses
Salut,
Tu crée un fichier temporaire, tu écrit ce que tu veux, après t'écris tout ce qu'il y a dans ton fichier de base, tu le supprimer, et tu renomme le temporaire.
Tu crée un fichier temporaire, tu écrit ce que tu veux, après t'écris tout ce qu'il y a dans ton fichier de base, tu le supprimer, et tu renomme le temporaire.
tartefion
Messages postés
31
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
21 janvier 2011
7
19 janv. 2011 à 14:12
19 janv. 2011 à 14:12
Bonjour,
Ou sinon tu stock l'intégralité de ton texte dans une variable à laquelle tu ajoutes ce que tu veux :
string contenuFichier; //Ton contenu à la base
string new_contenu = "Blablablabla" + contenuFichier; //Le nouveau contenu
Ou sinon tu stock l'intégralité de ton texte dans une variable à laquelle tu ajoutes ce que tu veux :
string contenuFichier; //Ton contenu à la base
string new_contenu = "Blablablabla" + contenuFichier; //Le nouveau contenu
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
33
19 janv. 2011 à 14:19
19 janv. 2011 à 14:19
Merci pour vos réponse,
j'ai plutot pensé à faire la premiere solution (celle de francis), parce que la dexieme je ne sais pas si ça va trop marché parce que mon script va tourner et le fichier va devenir volumineux, donc l'accés au fichier va prendre du temps et et mettre son contunu dans une variable risque de déborder (la variable).
voilà,
par contre, je voulais penser à une solution ou je fais le traitement sur le fichier de base directement.
j'ai plutot pensé à faire la premiere solution (celle de francis), parce que la dexieme je ne sais pas si ça va trop marché parce que mon script va tourner et le fichier va devenir volumineux, donc l'accés au fichier va prendre du temps et et mettre son contunu dans une variable risque de déborder (la variable).
voilà,
par contre, je voulais penser à une solution ou je fais le traitement sur le fichier de base directement.
tartefion
Messages postés
31
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
21 janvier 2011
7
19 janv. 2011 à 14:46
19 janv. 2011 à 14:46
De rien ^^ je te donnais cette solution afin d'éviter la création d'un nouveau fichier.
A+
A+
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
19 janv. 2011 à 14:31
19 janv. 2011 à 14:31
on ne peut pas écrire au début d'un fichier sans effacer ce sur quoi on écrit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nabil07
Messages postés
140
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
10 avril 2014
64
Modifié par nabil07 le 20/01/2011 à 21:12
Modifié par nabil07 le 20/01/2011 à 21:12
Bonjour,
il suffit d'ouvrir le fichier en mode "append" [a].
il suffit d'ouvrir le fichier en mode "append" [a].
FILE* fichier = fopen("nom_fichier","a+"); seek(fichier,0); //le 0 est le nombre d'octets que tu veux sauter. Puisque tu veux que ca sera au début donc tu mets 0
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
33
19 janv. 2011 à 16:41
19 janv. 2011 à 16:41
mais avec la fonction [a] les ajouts se font a la fin et moi je veux au debut sans ecraser la suite
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
19 janv. 2011 à 16:42
19 janv. 2011 à 16:42
non, dans ce mode là tu peu écrire à la fin, mais pas au début.
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
33
19 janv. 2011 à 16:47
19 janv. 2011 à 16:47
oui moi je voulais au début, je l'ai bien precisé dans l'annonce du probleme
malaik5
Messages postés
258
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
28 novembre 2013
33
19 janv. 2011 à 16:48
19 janv. 2011 à 16:48
deja que je n'arrive pas a lire mon fichier ligne par ligne
t'as pas une idée
t'as pas une idée
19 janv. 2011 à 15:44
voilà j'ai fait ce petite bout de code à la volé et le probleme est que à chaque fois la valeur de la chaine de caractere pointe vers NULL et je reçois rien ensorti à part la valeur NULL dans le fichier temporaire
Voici le code:
#include <stdlib.h>
#include <stdio.h>
FILE* fopen(const char* nomDuFichier, const char* modeOuverture);
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
FILE* fichier_malik = NULL;
char * ch;
//char * ch1;
int a;
fichier = fopen("test.txt", "r+");
fichier_malik = fopen("test_malik.txt", "r+");
if (fichier != NULL)
{
//printf("ouverture reussie\n");
//a = fseek (fichier, 0, 0);
fputs( "LATARSA " , fichier);
fputs( "LATARSA\n" , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
fputs( "LATARSA " , fichier);
while (!feof(fichier))
{
fscanf (fichier, "%s\n", ch);
printf("voici la chaine lue: %s\n", ch);
fprintf(fichier_malik, "%s\n", ch);
}
}
else
{
printf("Impossible d'ouvrir le fichier test.txt\n");
}
return 0;
}
19 janv. 2011 à 16:22
ensuite, ça n'a pas de sens. si "fichier" est ton nouveau fichier (tu commences par écrire dedans), il ne faut pas aller lire dedans et écrire dans l'autre, mais l'inverse.
nomme tes variables de manière plus explicite, tu verras ça facilite le travail. Tes fichiers et variables FILE, nomme les source et destination (ou log et nouveau_log)
Pour finir, tu n'alloues pas d'espace à "ch", il risque d'y avoir une erreur lors de l'exécution.
19 janv. 2011 à 16:43
pour l'allocation de l'espace a ch t'as parfaitement raison je l'avais constaté par la suite
voici le nouveau code (qui ne marche toujour pas):
#include <stdlib.h>
#include <stdio.h>
FILE* fopen(const char* nomDuFichier, const char* modeOuverture);
int main(int argc, char *argv[])
{
FILE* fichier = NULL;
FILE* fichier_temp = NULL;
char * ch;
char * ch1;
int a, condition = 1;
ch = (char *) malloc(25);
fichier = fopen("test.txt", "r+");
fichier_temp = fopen("test_temp.txt", "w");
if (fichier != NULL)
{
//printf("ouverture reussie\n");
//a = fseek (fichier, 0, 0);
fputs( "Les systemes dinformation actuels mettent en relation un nombre\n Poesi \n Les systemes dinformation actuels mettent en relation un nombre\n Poesi\n Les systemes dinformation actuels mettent en relation un nombre\n" , fichier);
while (!feof(fichier))
{
condition = fscanf (fichier, "%s", ch);
if(condition!=feof(fichier))
{
printf("voici la chaine lue: %s\n", ch);
fprintf(fichier_temp, "%s", ch);
}
}
}
else
{
printf("Impossible d'ouvrir le fichier test.txt\n");
}
return 0;
}
19 janv. 2011 à 16:44
19 janv. 2011 à 16:45