catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009
-
31 juil. 2006 à 12:18
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 2009
-
31 juil. 2006 à 16:03
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.
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;
// 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
catamenia
Messages postés119Date d'inscriptionmercredi 15 octobre 2003StatutMembreDernière intervention21 juillet 2009 31 juil. 2006 à 14:30
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?
ElectricalMan
Messages postés39Date d'inscriptionsamedi 20 mars 2004StatutMembreDernière intervention 5 novembre 2008 31 juil. 2006 à 14:47
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...
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
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