Comment vider un fichier texte ? [Résolu]

Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
26 novembre 2007
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
3
Merci
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
26 novembre 2007
0
Merci
oui mais celà ne marche que si on ecrase derriere, moi je voudrais vider le fichier sans condition d'ecriture derriere
Commenter la réponse de cs_skyman272
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
26 novembre 2007
0
Merci
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
Commenter la réponse de cs_skyman272
Messages postés
34
Date d'inscription
jeudi 17 juin 2004
Dernière intervention
26 novembre 2007
0
Merci
merci ça fonctionne, il y avait un pb de syntaxe
Commenter la réponse de cs_skyman272
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
0
Merci



Commenter la réponse de cs_Jack
0
Merci
Open fichier For Output As 1

Close 1
Commenter la réponse de ahmedouw
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.