cs_Tidam
Messages postés124Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 février 2006
-
15 nov. 2005 à 22:19
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 2007
-
17 nov. 2005 à 00:39
Voila une question que je me suis pose tout a l'heure ... je sais bien
comment lire un fichier, modifier un fichier ... mais la ou j'ai un
petit probleme, c'est pour supprimer un bout de fichier ... pour moi il
faut reecrire tout ce qu'il y a apres ce bout a retirer au debut de
celui ci, mais quoi que l'on fasse, si on fait cette methode, il
restera la fin de la fin du fichier (je sais pas comment appeler ca :p)
...
Si quelqu'un avait une petite idee ... merci d'avance :p
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 16 nov. 2005 à 19:17
Ce système ne convient pas toujours, par exemple dans le cas d'une
réorganisation de fichier un peu plus complexe. Dans ce cas tu lit dans
le fichier original A, tu ecris de façon organisée dans un fichier
temporaire fraichement créé B, tu efface A et tu renomme B en A.
Ca marche sous windows et unix puisque c'est une methode indépendante des outils employés. ;)
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 16 nov. 2005 à 01:50
Salut,
Tu peux comme l'a dit brunews recopier ce qui t'intéresse au début du fichier et ensuite employer SetEndOfFile().
Ce système ne convient pas toujours, par exemple dans le cas d'une
réorganisation de fichier un peu plus complexe. Dans ce cas tu lit dans
le fichier original A, tu ecris de façon organisée dans un fichier
temporaire fraichement créé B, tu efface A et tu renomme B en A.
Dans le cas d'une réorganisation, tu peux également te servir d'un
buffer mémoire couplé à la première méthode SetEndOfFile(), mais cette
technique est dépendante de la mémoire vive disponible.
cs_Tidam
Messages postés124Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 février 20062 16 nov. 2005 à 17:54
Huhu, oui ca pourrait peut etre marcher sauf que je taff sous unix ...
voir meme je cherche quelque chose de portable sous unix ET windows ...
une fonction comme celles de fcntl.h quoi ...
m'enfin deja merci je sais le faire sous windows au cas ou je ne trouve pas ce que je cherche :p
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Tidam
Messages postés124Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 février 20062 16 nov. 2005 à 20:05
oué ca marche ca c'est certain mais imagine que tu ais 100 suppressions a faire en 1 seconde ...
je suis pas sure que l'ordinateur va apprecier de devoir creer 100
fichiers en si peu de temps, les recopier tous, supprimer les anciens,
et les renommer ... m'enfin si ya que ca :p
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 17 nov. 2005 à 00:35
Ca fonctionne très bien et très vite si tu utilise une lecture/ecriture par tampon avec fwrite().
Après c'est vrai que si les fichiers sont gros ça prendra du temps mais je ne vois rien d'autre de portable. :/
J'ai cherché deux secondes sur unix, et voilà ce que j'ai trouvé en
réponse à une équivalence à chsize sous unix ; ça doit être ce que tu
cherches mais je n'utilise pas de système unix donc je ne peux pas
tester.
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 17 nov. 2005 à 00:39
Oui j'oubliais, ces liens concernent d'ailleurs comme spécifié une alternative à la fonction ftruncate() spécifique unix.
Regardes aussi de ce côté là.