Supprimer les 3 dernières lignes d'un .txt [Résolu]

Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
- - Dernière réponse : jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
- 12 déc. 2006 à 19:40
Salut à tous,

Voilà mon petit problème :
J'ai un fichier *.txt et je voudrais supprimer les 3 dernières lignes de ce fichier à partir de mon programme (sous VB6).

Merci d'avance à ceux qui pourront m'aider
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
18
3
Merci
Salut,

En utilisant la méthode LoadTextFile de l'ami Renfield que tu trouveras ici :




http://www.vbfrance.com/codes/CHARGER-FICHIER-TEXTE-WINDOWS-OU-UNIX_39369.aspx






tu peux faire ceci :

Dim tablo() As String
Dim sTemp As String
Dim sFileName As String
Dim i As Long

sFileName =
"C:\repertoire\fichier.txt"


sTemp = LoadTextFile(sFileName)
tablo = Split(sTemp,vbCrLf)
Open sFileName For Output As #1
  For i = LBound(tablo) To UBound(tablo)-3
    Print #1,tablo(i)
  Next i
Close #1




Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.

Dire « Merci » 3

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

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de econs
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
Fais une petite recherche sur ce forum.

Elle te permettra d'importer dans un variable la totatlité de ton fichier texte.

Utilise alors Split (en te servant des vbcrlf qui séparent les lignes)

N'utilise du tableau(n) obtenu que les n-3 lignes, à réécrire dans ton fichier texte.


Voilà... j'ai préféré le dire ainsi plutôt que de t'écrire directement le code. (il vaut mieux apprendre à pêcher que de donner un poisson).

Reviens (avec ton code d'essai) si tu rencontres une difficulté.
Commenter la réponse de jmfmarques
Messages postés
562
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010
0
Merci
Ca aurait été bien que tu nous montre ta source.

Je ne sais pas quel est le codage du texte que tu as utilisé mais admettons que c'est ASCII
Dans le bloc note de Windows les saut de lignes peuvent être virtuel car le texte est redimenssioné à la taille de la fenêtre. Donc il faut que tu cherches dans la variable String récupéré quand tu ouvres ton fichier dans l'Ide grâce à la fonction InStr le caractère suivant "�5;�5;". Je sais plus le code correspondant dans la table ASCII. Le dernier "�5;�5;" trouvé correspont au saut de la dernière ligne. Autrement dit tu cherches les trois derniers "�5;�5;" et tu supprimes les lignes grâce à la fonction Mid par exemple. J'éspère t'avoir donné une piste.
Commenter la réponse de cs_yvesyves
Messages postés
562
Date d'inscription
samedi 10 janvier 2004
Statut
Membre
Dernière intervention
11 octobre 2010
0
Merci
jmfmarques > J'aime bien ta méthode plus simple avec l'utilisation d'un tableau mais scoboy va devoir reconstituer sa chaîne de caractères. Tu fais NouveauTexte = Mid(MonTexte,1,Position_Du_3eme_Dernier_VbCrLf_Trouvé - 1)
Commenter la réponse de cs_yvesyves
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
Les lignes d'un fichier txt sont des lignes (et celà n'a rien à voir avec l'affichage, qui va uniquement dépendre de la largeur que l'on donne à la fenêtre de l'affichage de l'outil utilisé pour visualiser). Les lignes y sont séparées par un vbcrlf
Commenter la réponse de jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
"Position_Du_3eme_Dernier_VbCrLf_Trouvé "

et tu l'envoies alors vers la fabrication d'une boucle pour faire cette recherche de position !...
Commenter la réponse de jmfmarques
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
0
Merci
Ok econs,
Merci à tous de m'avoir aidé.
Commenter la réponse de scoboy
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
J'aurais vraiment préféré que tu n'aies pas ce poisson-là servi prêt à manger...
Tu serais sans doute arrivé au même résultat (plus lentement, certes) et il serait resté "gravé"...
Désolé.
Commenter la réponse de jmfmarques