Comment vider un fichier texte ? [Résolu]

Signaler
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
26 novembre 2007
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

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

Merci
A voir également:

10 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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)
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
26 novembre 2007

oui mais celà ne marche que si on ecrase derriere, moi je voudrais vider le fichier sans condition d'ecriture derriere
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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)
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
26 novembre 2007

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
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
26 novembre 2007

merci ça fonctionne, il y avait un pb de syntaxe
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75



Open fichier For Output As 1

Close 1
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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.