Problème avec fichier txt.

ptitrobertpointfr Messages postés 11 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 2 octobre 2003 - 1 oct. 2003 à 19:52
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010 - 25 févr. 2005 à 16:32
Bonsoir,

J'essaye mais en vain de trouver la technique pour supprimer un ligne dans un fichier txt.

Mon fichier est créé en mode Append et je veux supprimer une ligne qui se situe en milieu de fichier.

Merci de votre aide

4 réponses

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
1 oct. 2003 à 20:39
Suivant la structure des données, tu peux employer plusieurs techniques...

1° Tu édites ton fichier avec Notepad, par exemple, et tu procèdes à la correction avant de refermer le fichier...

2° Tu modifies ton application pour qu'elle charge dans un contrôle (textbox, flexgrid...) le contenu de ton fichier en utilisant "Open for input"

3° Tu crées une nouvelle procédure qui lit ton fichier et en recopie les données dans un second sauf le morceau que tu ne veux plus. Une fois, le fichier "recopié", tu détruis ton fichier d'origine (ou tu le renommes) et tu renommes le second avec le nom du premier

Programmix
0
pcpunch Messages postés 1243 Date d'inscription mardi 7 mai 2002 Statut Membre Dernière intervention 18 février 2019 5
2 oct. 2003 à 02:10
Moi j'opte pour ta derniére proposition programmix en passant le texte par una variable , mais un exemple sera je pense, le bien venu pour ptitrobertpointfr (qui je pense est un newbees 10msg)

Bon voila un exemple avec un fichier "c:\fichier.txt"
contenu :
Salut je suis pcpunch
Je vais tenter de t'aider
un peu
blablabla

admettons que je veu supprimer la ligne "un peu"

'---------------------------------------------------------
'va contenir les lignes
Dim VarLigne As String
'va contenir le fichier sans la ligne voulu
Dim VarFichier As String

'ouvre le fichier en lecture
Open "c:\fichier.txt" For Input As #1
'boucle ligne par ligne
Do While Not EOF(1)
Line Input #1, VarLigne 'lit la ligne et la place dans VarLigne
'Si la ligne est differente de "un peu" alors on la stocke ds VarFichier
If VarLigne <> "un peu" Then VarFichier = VarFichier & VarLigne & vbCrLf
Loop 'retour de boucle
Close #1 'ferme le fichier

'ouvre le fichier en mode ecriture
Open "c:\fichier.txt" For Output As #1
Print #1, VarFichier 'ecrit varfichier (sans la ligne "un peu" lol)
Close #1

Voila c'est une facon comme une autre, SI besoin + de renseignements n'hésite pas vbfrance.com est fait pour ca!!

++ :big)
0
ptitrobertpointfr Messages postés 11 Date d'inscription dimanche 27 avril 2003 Statut Membre Dernière intervention 2 octobre 2003
2 oct. 2003 à 07:50
Merci à vous, programmix et cppunch en effet je ne fais pas parti des vétérant du vb mais je progresse, surtout lorsque des gens comme vous me font avancer.

Merci
@+
0
cimcim Messages postés 31 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 29 juillet 2010
25 févr. 2005 à 16:32
Bonjour, j'ai le même problème, mais dans mon cas votre méthode risque de faire foirer mon appli.. En fait, mon fichier texte contient une liste d'utilisateurs connectés à un fichier via un réseau.
Lorsque l'un d'eux ferme le fichier, il faut modifier celui ci pour que l'utilisateur disparaisse..
Le problème vient au moment ou 2 utilisateurs quittent en même temps !!! 1 seule fermeture sera enregistrée, ou, c'est suffisament rapide pour qu'il n'y ai quasiment aucun risque ???
En attendant une réponse (que j'éspère rapide bien que ce soit un vieux topic)
Merci d'avance
0
Rejoignez-nous