begin process at 2012 02 15 19:08:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > FONCTION AJOUT OU SUPPRESSION DE LIGNE DANS UN FICHIER

FONCTION AJOUT OU SUPPRESSION DE LIGNE DANS UN FICHIER


 Information sur la source

Note :
9 / 10 - par 2 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichier / Disque Niveau :Débutant Date de création :24/11/2003 Date de mise à jour :24/11/2003 13:43:31 Vu :6 898

Auteur : pcpunch

Ecrire un message privé
Site perso
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

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

  • '---------------------------------------------------------------------------
  • '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
'---------------------------------------------------------------------------
'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????


 Sources du même auteur

Source avec Zip Source avec une capture SIMON EN VB
Source avec Zip Source avec une capture GRAVURE CD AVEC NEROCMD DEPUIS APPLI VB
Source avec Zip Source avec une capture RADIO SUR INTERNET
Source avec Zip Source avec une capture AFFICHE DES TITULAIRES FOOTBALL (MCFOOTMANAGER)
Source avec Zip Source avec une capture IMPRESSION LABEL DVD

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

Commentaires et avis

Commentaire de pcpunch le 24/11/2003 14:05:20

Si vous avez une idée de fonction sur fichier que je n'ai pas abordé, dite le moi. J'essaierai de mettre a jour!!!!

Commentaire de Sipadan le 25/11/2003 07:14:18

J'ai pas essayé, mais je suis sur que se sera utile.

Commentaire de philoo91 le 25/11/2003 08:19:19

En effet, le code a le mérite d'être simple.
Peut être un peu trop.
Du coup pour les fichiers texte (selon le code employé) gros très gros,
les algos cités dans les routines ne passent plus car on va être en débordement de capacité sur les variables de buffer lecture / écriture
(référence à la variable : VarFichier )
De plus fixer le numéro de canal avec une constante pas bon
Il faudrait utiliser "freefile" ex :

Dim Canal as Integer
Canal = FREEFILE
Open Fichier For Output As Canal
Print #Canal, Varfichier
Close #Canal

Pour un début ça va.

Commentaire de chillboy007 le 24/12/2003 19:17:58

Y a plus simple pour supprimmer :
tu ouvre le fichier en lecture, et un autre temporaire en écriture (input/output)

tu fait un do..loop until eof(#) et en même temps tu transcrit chaque ligne dans le fichier temps, à l'exception de celle à supprimmer, à la fin tu renomme

----------

dim path, fichier, ligne, supp as string

path = "chemin"
fichier = "fichier"
supp = "ligne à supprimmer"

open path & fichier for input as #1
open path & "temp" & fichier for output as #2
do
input #1, ligne
if ligne &lt;&gt; supp then
print #2, ligne
end if
loop until eof(1)
close #1, #2

kill path & fichier
name  path & "temp" & fichier as path & fichier

simple non ?
enfin.. c une idée que j'ai eu dans un de mes progs

Commentaire de Pestouille le 26/02/2004 16:15:27

Félicitations pour ton programme il m'est très utile !!

@+

Commentaire de alex102 le 24/08/2004 09:57:31

salut
bravo pour ton programe mais j'ai un problème pour la supression
ca ne marche pas à la compilation il me met argument non falcutatif
pourtant je remplace bien dans les open fichier par le chemin du fichier

si vous savez pourquoi merci

Commentaire de DAHOKHAN le 26/10/2005 22:51:49

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 !!!!!

Commentaire de seudo le 01/06/2006 13:34:03

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.

Commentaire de Fabfort le 06/07/2006 11:59:20

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...

Commentaire de Skyrats le 04/09/2007 10:34:55

Un  tout grand merci pour cette source qui m'a plus que aidé.
Ca fonctionne parfaitement bien.

Commentaire de soundpanther le 22/11/2007 13:28:18

Bonjour

j'ai une erreur ?

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

Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,498 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales