Comment vider un fichier texte ?

Résolu
cs_skyman272 Messages postés 34 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 26 novembre 2007 - 31 août 2007 à 12:46
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 28 avril 2013 à 11:22
Bonjour,

Comment puis je vider la totalité d'un fichier texte, pour que celui ci soit à 0 octet ?

Merci

10 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2007 à 12:50
Salut
Facile, il te suffit d'ouvrir (Open For Output) le fichier et faire le refermer (Close) juste derrière.
L'instruction Open écrasera le fichier s'il existe déjà

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_skyman272 Messages postés 34 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 26 novembre 2007
31 août 2007 à 13:37
oui mais celà ne marche que si on ecrase derriere, moi je voudrais vider le fichier sans condition d'ecriture derriere
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2007 à 14:34
Re
Là, je ne te comprends pas.
Tu veux vider le contenu d'un fichier existant, juste en gardant le fichier, mais sans rien dedans.
La méthode Open For Output puis un Close juste derrière (2 lignes) me parait hyper simple et combine la création d'un fichier s'il n'existe pas, ou l'écrasement d'un fichier existant.
Que veux-tu dire par "sans condition d'ecriture derriere", tu n'es pas clair

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_skyman272 Messages postés 34 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 26 novembre 2007
31 août 2007 à 14:47
Je veux juste vider le fichier pour une ecriture ulterieure

Si je fais


Open "c:\fichier.txt" For Output As #1
Close canal

ça ne m'efface rien

si j'ajoute avant le close :
Print #canal, "text"

ça m'ecrase bien le fichier mais je n'arrive pas juste à l'effacer
0

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

Posez votre question
cs_skyman272 Messages postés 34 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 26 novembre 2007
31 août 2007 à 14:55
merci ça fonctionne, il y avait un pb de syntaxe
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2007 à 15:07



0
Open fichier For Output As 1

Close 1
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2013 à 10:55
Bonjour,
On peut d'ailleurs se demander quel serait l'intérêt de vider ce fichier !
Il suffit de le détruire. Et ce d'autant que la prochaine instruction Open pour y écrire le re-créerait !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2013 à 11:07
En y réfléchissant bien, en outre :
La destruction est préférable dans ce cas-là. Pourquoi ?
Parce que l'effacement (surtout d'un fichier de faible poids) puis la réécriture avec un plus grand poids va générer la nécessité d'un fractionnement (et donc de chaînages).
La destruction puis la réécriture (quelles que soient les tailles) ne vont certes pas supprimer les risques de fractionnement du disque, mais au moins éviter celui du fichier considéré lui-même.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 avril 2013 à 11:22
Pour mieux comprendre :
Imagine qu'ayant écrit à la main une liste bâtonnée*** dont un élément était composée de trois mots, tu veuilles effacer (avec une gomme) ces trois mots et les remplacer par une série d'une vingtaine de mots (en précisant que l'on ne peut effacer le bâtonnage). Tu n'y parviendrais (espace trop petit) qu'en créant un renvoi vers un complément de 17 mots ajoutés en fin de liste. Ce qui ferait que le lecteur lirait 3 mots là et devrait continuer sa lecture en bas du texte.
Alors que si tu avais carrément rayé cet élément et ajouté en fin de texte, il n'aurait pas à pratiquer ce "sport" alourdissant.

*** bâtonner veut dire compléter les blancs de toute une ligne par des tirets (comme sur un acte notarié)
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous