Soyez le premier à donner votre avis sur cette source.
Snippet vu 21 194 fois - Téléchargée 31 fois
'1ère partie : 'Au début du programme, vous devez lire le fichier et copier les lignes dans une collection. 'Le variable collection doit être déclarée globale pour pouvoir être utilisée dans plusieurs procédures Private collection As New ArrayList 'Puis il vous faut créer la procédure qui va lire le fichier. Ceci peut être fait durant le chargement de la « form » Private Sub frmEx_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try 'crée une instance du fichier que l?on veut lire. (Application.StartupPath renvoie le chemin de votre application. Le fichier doit donc se trouver a cet endroit. Remplacez nomFichier par le nom de votre fichier texte.) Dim fichier As StreamReader = New StreamReader(Application.StartupPath & "\nomFichier.txt") 'déclare une variable contenant une ligne du fichier Dim ligne As String 'Parcoure le fichier jusqu?à ce qu?il n?y ait plus de caractères Do Until fichier.Peek = -1 'lit la ligne du fichier ligne = fichier.ReadLine 'ajoute la ligne dans la collection collection.Add(ligne) Loop 'ferme le fichier fichier.Close() Catch ex As Exception 'affiche le message d?erreur MsgBox(ex.Message) End Try End Sub 'Enfin, vous devez créer la procédure qui permettra de supprimer une ligne Private Sub supprimeLigne() Dim indexLigne As Integer 'cette variable doit contenir l?index de la ligne que vous voulez supprimer. Pour cela, il y a plusieurs façons de faire, tout dépend de votre cas, mais par exemple, vous pouvez utiliser une liste déroulante combobox ou une listbox, la remplir avec les lignes du fichier, et choisir la ligne que vous voulez supprimer en cliquant sur la ligne correspondante dans la liste déroulante. Dans cette exemple, l?index de la ligne serait donc : indexLigne = combobox.SelectedIndex 'supprime la ligne sélectionnée de la collection collection.RemoveAt(indexLigne) Try 'déclare le fichier pour ecrire; ?false? signifie que le fichier va etre ecrit par dessus; si cela avait ete ?true? les données auraient été ajoutées à la fin du fichier Dim fichier As StreamWriter = New StreamWriter(Application.StartupPath & "\nomFichier.txt", False) Dim i As Integer 'pour chaque ligne de la collection For i = 0 To collection.Count ? 1 'ecrit la ligne dans le fichier fichier.WriteLine(collection(i)) Next 'Ferme le fichier fichier.Close() Catch ex As Exception 'Code exécuté en cas d'exception MsgBox(ex.Message) End Try End Sub 'Et voilà, enjoy ! ;) 'PS : le code pour afficher les lignes d?un fichier dans une liste déroulante pourrait simplement être par exemple Dim i As Integer ?Pour chaque ligne de la collection For i = 0 To collection.Count - 1 Dim ligneCol As String = collection(i) ?ajoute la ligne de la collection dans la liste déroulante NomCombobox.Add(ligneCol) Next 'Il est également possible, si votre ligne contient plusieurs champs séparés par un délimiteur tel que un espace, un caractère particulier comme « | », « ; », une tabulation etc de ne choisir d?afficher dans la liste déroulante qu?un seul champ de la ligne ; par exemple 'declare un tableau de chaines de caracteres qui contiendra les champs d?une ligne Dim i As Integer 'Pour chaque ligne de la collection For i = 0 To collection.Count - 1 Dim ligneCol As String = collection(i) Dim champs() As String 'découpe le tableau en fonction du délimiteur et du nombre de champs attendu, exemple avec le caractère tabulation comme délimiteur et 5 comme le nombre de champs que contient la ligne champs = ligneCol.Split(vbTab, 5) 'ajoute juste le 1er champ au lieu de toute la ligne NomCombobox.Add(champs(0)) Next
21 sept. 2006 à 09:25
Impossible d'aller plus loin..
26 févr. 2006 à 18:43
en ecriture
Dim fichier As StreamWriter = New StreamWriter(Application.StartupPath & "\nomFichier.txt", False, System.Text.Encoding.Default)
et en lecture
Dim fichier As StreamReader = New StreamReader(Application.StartupPath & "\nomFichier.txt", System.Text.Encoding.Default)
Idem 7/10
Bonne prog
20 févr. 2006 à 12:43
Bonne continuation !
Redman
1 nov. 2005 à 18:27
Effectivement Acrcorp, tu as entierement raison, si le fichier contient un nombre tres important de donnees, ca risque de poser probleme ;)
Je vais le rajouter dans la description.
30 oct. 2005 à 10:11
Mais sinon, c'est classique de faire comme ça, c'est plus facile pour plein de raison :)
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.