Modification fichier texte

Résolu
cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009 - 10 sept. 2004 à 10:12
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 - 10 sept. 2004 à 13:18
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

cs_starfighter Messages postés 90 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 28 février 2005
10 sept. 2004 à 10:28
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
cs_starfighter Messages postés 90 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 28 février 2005
10 sept. 2004 à 10:30
J'ai oublié, les lignes sont comprises entre 0 et NbrLigne-1
0
cs_ludwig89 Messages postés 47 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 18 septembre 2009
10 sept. 2004 à 11:27
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
cs_starfighter Messages postés 90 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 28 février 2005
10 sept. 2004 à 11:37
Le code que je te donne, tu le met dans un fichier de type Classe qui s'appele "utlfichier.cls"
0

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

Posez votre question
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
10 sept. 2004 à 12:50
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
cs_starfighter Messages postés 90 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 28 février 2005
10 sept. 2004 à 13:03
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
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
10 sept. 2004 à 13:18
Ok ok juste ça m'a surpris ;)

dsl

@+

E.B.
0
Rejoignez-nous