[TC++]Mettre a jour un fichier

kobee12 Messages postés 153 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 31 octobre 2006 - 1 mai 2003 à 19:39
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 2 mai 2003 à 03:29
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2003 à 19:50
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...
0
Krox68 Messages postés 157 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 11 septembre 2004 1
1 mai 2003 à 20:07
FILE*fichier;
fichier=fopen("data.txt","a+") // pour ecrire a la fin dufichier san effacer le reste
fprintf(fichier,"Ma chaine");
fclose(fichier);

Krox >:)
0
kobee12 Messages postés 153 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 31 octobre 2006 1
1 mai 2003 à 20:57
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 @ +
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2003 à 21:09
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
2 mai 2003 à 03:29
Il faut associer chaque enregistrement à sa position dans le fichier.

Core Breaker :)
0
Rejoignez-nous