Fonction ajout ou suppression de ligne dans un fichier

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 885 fois - Téléchargée 29 fois

Contenu du snippet

Voila, suite à une question posé sur le forum, je joint ces 2 fonctions qui peuvent étre utile aux debutants!!!

Ex d'utilisation :

Insere_FicTxt "Test ajout de ligne", "c:\fichier.txt", 2
insere le texte "Test ajout de ligne" dans le fichier "c:\fichier.txt" à la ligne 2

SupprLigne 2, "c:\fichier.txt"
Supprimer la 2éme ligne du fichier "c:\fichier.txt"

RemplaceTxt "c:\fichier.txt", "1er", "Premier"
Remplace tous les 1er par premier dans le fichier

Source / Exemple :


'---------------------------------------------------------------------------
'Fonction Inserer une ligne de texte dans un fichier a la ligne de son choix
'---------------------------------------------------------------------------
Public Function Insere_FicTxt(Texte As String, Fichier As String, Optional Ligne As Integer = 1)
Dim VarFichier As String
Open Fichier For Input As #1
VarFichier = input(LOF(1), 1)
Close #1
'Si 1er ligne
If Ligne = 1 Then VarFichier = Texte & vbCrLf & VarFichier:  GoTo Ecrit
'Si Dans le fichier
Dim VarNr As Integer
For i = 1 To Len(VarFichier)
If Mid(VarFichier, i, 1) = Chr(13) And Mid(VarFichier, i + 1, 1) = Chr(10) Then VarNr = VarNr + 1
If VarNr = Ligne - 1 Then VarFichier = Mid(VarFichier, 1, i + 1) & Texte & CrLf & Mid(VarFichier, i, Len(VarFichier)): Exit For: GoTo Ecrit
Next i
'Si derniere ligne ou +
If VarNr < Ligne - 1 Then VarFichier = VarFichier & vbCrLf & Texte: MsgBox "ajout der"
Ecrit:
Open Fichier For Output As #1
Print #1, VarFichier
Close #1
End Function

'--------------------------------------------------------------
'Fonction Supprimer la ligne de son choix dans un fichier texte
'--------------------------------------------------------------
Public Function SupprLigne(NrLigne As Integer, Fichier As String)
Dim VarFichier As String
Dim VarNr As Integer
Dim Ligne As String
Open Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
VarNr = VarNr + 1
If VarNr <> NrLigne Then VarFichier = VarFichier & Ligne & vbCrLf
Loop
Close #1
'ecriture du fichier
Open Fichier For Output As #1
Print #1, VarFichier
Close #1
End Function

'--------------------------------------------------------------
'Fonction Recherche et remplace le texte dans un fichier
'--------------------------------------------------------------
Public Function RemplaceTxt(Fichier As String, TxtSource As String, TxtDestination As String)
Dim Ligne As String
Dim Varfichier As String
Open Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, Ligne
Ligne = Replace(Ligne, TxtSource, TxtDestination)
varfic = varfic & Ligne & vbCrLf
Loop
Close #1
'ecriture du fichier
Open Fichier For Output As #1
Print #1, Varfichier
Close #1
End Function

Conclusion :


Voila, j'espére que ça sera utile????

A voir également

Ajouter un commentaire

Commentaires

soundpanther
Messages postés
68
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
31 janvier 2009
-
Bonjour

j'ai une erreur ?

Erreur d 'exécution '62 :
Lentrée dépasse la fin de fichier

Merci
Skyrats
Messages postés
7
Date d'inscription
dimanche 19 septembre 2004
Statut
Membre
Dernière intervention
13 septembre 2009
-
Un tout grand merci pour cette source qui m'a plus que aidé.
Ca fonctionne parfaitement bien.
Fabfort
Messages postés
1
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
6 juillet 2006
-
Merci pour le code.
Néanmoins, cela me fait une ligne vierge en dernière ligne, et lorsque je rajoute un élément à mon fichier, il est rajouté après cette ligne vierge (donc j'ai un trou dans ma liste).
Quelqu'un pourrai m'éclairer?
Merci d'avance...
seudo
Messages postés
2
Date d'inscription
mardi 30 mai 2006
Statut
Membre
Dernière intervention
1 juin 2006
-
salut!j'ai bien regarder le code et il a l'air bien mais je ne l'ai pas essayer.Par contre j'ai petit soucis:j'ai une application en VB qui les trains et j'utilise un fichier texte pour stocker les informations.Et quand j'essaye de rechercher des informations pour etre affichées dans un formulaire,il ne m'affiche que le dernier enregistrement,je sais pas comment faire car je suis debutant en VB.voici donc le code que j'ai utilisé:

Private Sub Form_Load()
Open "C:\TRAIN.txt" For Input As 1 'on ouvre le fichier à analyser
Text_numtrain.Text = Text_numtrain
'Text_code_miss.Text = Text_code_miss
'Text_heure_de.Text = Text_heure_de
'Text_heure_ar.Text = Text_heure_ar
'Text_num_quai.Text = Text_num_quai
'Text_depart.Text = Text_depart
'Text_dest.Text = Text_dest
'Text_dat.Text = Text_dat
Do Until EOF(1)
Line Input #1, tmp Text_numtrain.Text = tmp

Loop
Close #1
End Sub
Si quelqu'un peut bien m'aider,Merci.
cs_DAHOKHAN
Messages postés
20
Date d'inscription
mercredi 19 octobre 2005
Statut
Membre
Dernière intervention
12 décembre 2005
-
super ta source mieux que celle expliquer par chillboy007
j'ai utiliser les deux la tienne est plus simple.
Et plus sure a mon avis
merci car ta source ma sorti une epine du pied.
ceci dis pense un peu a newbi comme moi
car quand tu met varfic je me demande d'ou sa sort au faite c'est varfichier et ça marche tres bien !!!!
merci by by !!!!!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.