[TC++]Mettre a jour un fichier

Signaler
Messages postés
153
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
31 octobre 2006
-
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
-
Salut!!

J'aimerais savoir comment mettre a jour une fichier, c'est a dire
modifier un enregistrement sans effacer tout le reste.

Si quelqu'un a une idee qu'il me la dise
*Merci davance*
kobee12

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
ben faudrait savoir comment est structuré ton fichier.
Exemple pour Win32:
si est fait de enregs de struct ENREG:

int ModifEnreg(HANDLE hfl, ENREG *penreg, long idx)
{
DWORD r;
SetFilePointer(hfl, sizeof(ENREG)*idx, 0, FILE_BEGIN);
r = 0;
// on ecrit nouveau en place de ancien
WriteFile(hfl, penrg, sizeof(ENREG), &r, 0);
return (r == sizeof(ENREG));
}
BruNews, ciao...
Messages postés
157
Date d'inscription
jeudi 17 octobre 2002
Statut
Membre
Dernière intervention
11 septembre 2004

FILE*fichier;
fichier=fopen("data.txt","a+") // pour ecrire a la fin dufichier san effacer le reste
fprintf(fichier,"Ma chaine");
fclose(fichier);

Krox >:)
Messages postés
153
Date d'inscription
dimanche 26 janvier 2003
Statut
Membre
Dernière intervention
31 octobre 2006
1
mon fichier est strucutre de la maniere suivante:
'jour' 'mois' 'chaine'
'jour' 'mois' 'chaine'....

Je voudrais teste pour voir si le jour et le mois sont les memes.
Si ce sont les memes, alors je voudrais remplace ma chaine par la nouvelle.

Voila j'espere que tu vois ce que je cherche
Bon @ +
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
chaine veut tout et rien dire. Longueur fixe ?
Si oui pas de prob tu tamponnes a sa place.
Si NON alors faudra recopier ce qu'il y a a la fin de chaine dans un temp, revenir sur position de chaine, tamponner la nouvelle et recopier contenu de temp puis le supprimer si ne sert plus.
Tu as eu funcs de position et d'ecriture avant.
DWORD r;
r = 0;
ReadFile(hfl, pdata, lendata, &r, 0); // lecture
if(r != lendata) ERREUR
CloseHandle(hfl); // on ferme
hfl = CreateFile(...); // ouverture, creation...
Tu sais tout.
BruNews, ciao...
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Il faut associer chaque enregistrement à sa position dans le fichier.

Core Breaker :)