Supprimer les 3 dernières lignes d'un .txt

Résolu
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008 - 12 déc. 2006 à 17:37
jmfmarques Messages postés 7666 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

8 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
12 déc. 2006 à 18:22
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.
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 déc. 2006 à 17:57
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é.
0
cs_yvesyves Messages postés 561 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 11 octobre 2010
12 déc. 2006 à 18:02
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.
0
cs_yvesyves Messages postés 561 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 11 octobre 2010
12 déc. 2006 à 18:07
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)
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 déc. 2006 à 18:10
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 déc. 2006 à 18:13
"Position_Du_3eme_Dernier_VbCrLf_Trouvé "

et tu l'envoies alors vers la fabrication d'une boucle pour faire cette recherche de position !...
0
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
12 déc. 2006 à 18:45
Ok econs,
Merci à tous de m'avoir aidé.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 déc. 2006 à 19:40
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é.
0
Rejoignez-nous