Modification fichier texte

Résolu
Signaler
Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
18 septembre 2009
-
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
-
bonjour et merci pour toutes vos reponses

dans vb6

je voudrai ouvrir un fichier texte

connaitre le nombre total de ligne, et la sauvegarder dans une variable

faire une boucle et mettre le texte de la ligne xxx dans une variables.

cela afin de faire des test et des modifications de ce fichiers texte

de plus est ce que cela peu etre transparent pour l'utilisateur : pas de fenetre qui s'ouvre pas de confirmation de sauvegarde

merci bcp

7 réponses

Messages postés
90
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
28 février 2005

salut, bien voila le code d'une classe appeler utlFichier qui te permet de lire un fichier Texte (avec des lignes)
ou de sauvegarder un fichier texte

Option Explicit

Private mvarNbrLigne As Long
Private mvarFileName As String
Private mvarBuffer() As String
Private mvarIsOpen As Boolean
Private mvarMaxsize As Long

Public Sub SaveFichier()
Dim chemin As Integer
20      Dim CompteurLigne As Long

30          chemin = FreeFile
40          Open mvarFileName For Output As #chemin
50          For CompteurLigne = vbEmpty To mvarNbrLigne - 1
60              If mvarBuffer(CompteurLigne) <> vbCrLf Then
70                  Print #chemin, mvarBuffer(CompteurLigne)
80              Else
90                  Print #chemin, vbNullString
100             End If
110         Next CompteurLigne
120         Close #chemin
End Sub

Public Sub SetLigne(NumLigne As Long, ByVal vData As String)

10            mvarBuffer(NumLigne) = vData
End Sub

Public Function GetLigne(NumLigne As Long) As String

10            GetLigne = mvarBuffer(NumLigne)
End Function

Public Sub ChargeFichier()
Dim chemin As Integer
20      Dim m_gszBuff As String

30          chemin = FreeFile
40          Open mvarFileName For Input As #chemin
50          mvarNbrLigne = vbEmpty
60          While EOF(chemin) = False
70              Line Input #chemin, m_gszBuff
80              NewLigne m_gszBuff
90              If mvarMaxsize < Len(m_gszBuff) Then mvarMaxsize = Len(m_gszBuff)
100         Wend
110         mvarIsOpen = True
120         Close #chemin
End Sub

Public Sub NewLigne(ByVal strLigne As String)
            
10          NbrLigne = NbrLigne + 1
20          ReDim Preserve mvarBuffer(NbrLigne)
30          mvarBuffer(NbrLigne - 1) = strLigne
End Sub

Public Property Get Maxsize() As Long

10          Maxsize = mvarMaxsize
End Property

Public Property Let FileName(ByVal vData As String)

10          mvarFileName = vData
End Property

Public Property Get FileName() As String

10          FileName = mvarFileName
End Property

Public Property Let IsOpen(ByVal vData As Boolean)

10          mvarIsOpen = vData
End Property

Public Property Get IsOpen() As Boolean

10          IsOpen = mvarIsOpen
End Property

Public Property Let NbrLigne(ByVal vData As Long)

10          mvarNbrLigne = vData
End Property

Public Property Get NbrLigne() As Long

10          NbrLigne = mvarNbrLigne
End Property


utilisation :

dim mFichier as new utlFichier

mfichier.FileName=[Chemin vers mon fichier]
mfichier.ChargeFichier 'Charge le fichier dans la classe
mfichier.NbrLigne 'Nombre de ligne du fichier
msgbox mfichier.getligne(5) 'affiche la 5eme ligne

'pour enregistrer
mfichier.FileName=[Chemin vers mon fichier]
Pour chaque ligne
mfichier.NewLigne("Mon message")
mfichier.SaveFichier

'Modifier un fichier
Chargement du fichier
mfichier.SetLigne 5,"Mon message"
Enregistrement du fichier

voila j'espere que sa pourras te servir.

Remarque sur "de plus est ce que cela peu etre transparent pour l'utilisateur : pas de fenetre qui s'ouvre pas de confirmation de sauvegarde", ca c'est toi qui doit le gerer la classe n'ouvre pas de fenetre.
3
Messages postés
90
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
28 février 2005

J'ai oublié, les lignes sont comprises entre 0 et NbrLigne-1
0
Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
18 septembre 2009

merci pour la reponse rapide

dim mFichier as new utlFichier

juste une petit pb

pour "utlfichier" il me dit que le type n'est pas defini par l'utilisateur

que faire ????

merci
0
Messages postés
90
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
28 février 2005

Le code que je te donne, tu le met dans un fichier de type Classe qui s'appele "utlfichier.cls"
0
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
starfighter> a quoi servent tout les n° de ligne si il n'y a aucune gestion d'erreur ? De plus ça rend le code pas tres lisible m'enfin c'est une question de gout ;)

@+

E.B.
0
Messages postés
90
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
28 février 2005

EBArtSoft ce n'est pas un code que je propose en source sur vbfrance, c'est pour rendre service. C'est un code que j'utilise dans une application qui est en developpement la gestion d'erreur est en cours.
0
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Ok ok juste ça m'a surpris ;)

dsl

@+

E.B.
0