cs_Fripouil
Messages postés175Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention 8 mai 2017
-
16 mai 2008 à 14:52
cs_Fripouil
Messages postés175Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention 8 mai 2017
-
20 mai 2008 à 06:20
Bonjour,
Descriptif de mon probléme :
Dans mon fichier texte, j' ai des lignes qui sont enregistrées du type :
N° du Code : 01234567 16:57:32
N° du Code : 76543210 16:45:21
etc
Comment dois je faire pour ne récupérer que les infos que j' ai besoins ( dans ce cas : 01234567 16:57:32, sans le texte : N° du Code : ) dans une listbox ?
J' ai fait une recherche sur le site et on parle de : seek(1,position)
Mais je n' ai pas réussi à m' en servir ou ce n' est pas du tout ça qui me préléve les infos là où j' en ai besoin !
Merci par avance de l' aide que vous pourrez m' apporter.
PS : Si vous pouvez m' aiguiller aussi sur le fait que dans ma listbox je voudrais classer ces infos soit par leur N° soit par leurs heures
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 19 mai 2008 à 02:16
Re,
Il faut bien créer 2 colonnes dans la ListView, mais aussi changer sa propriété View sur Details.
Voici un exemple complet et fonctionnel:
1° Créer un nouveau projet
2° Ajouter ListView1 sur Form1
3° On peut changer les propriétées suivantes de ListView1 au moment du design:
View = Details
Colums: Ajouter 2 colonnes.
4° On peut changer la largeur des colonnes directement sur l'appercu
5° On ajoute ce code:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Lire les lignes du fichier
Dim Lines() As String = IO.File.ReadAllLines("C:\Fichier.txt", New System.Text.UTF7Encoding)
' Parcourir chaque ligne du fichier
For Each Line As String In Lines
' Vérifier que la ligne commence par "N° du Code :"
If Line.StartsWith("N° du Code :") Then
' Enlever le début inutile de la ligne (12 = longueur de la chaine "N° du Code :")
Line = Line.Substring(12).Trim
' Extraire le code
Dim Code As String = Line.Substring(0, Line.IndexOf(" ")).Trim
' Extraire l'heure
Dim Time As String = Line.Substring(Line.IndexOf(" ")).Trim
' Créer et ajouter l'item à la ListView
Dim Item As New ListViewItem(Code)
Item.SubItems.Add(Time)
ListView1.Items.Add(Item)
End If
Next
End Sub
End Class
a) C:\Fichier.txt doit spécifier le fichier à ouvrir
b) J'avais fais une erreur dans mon code: StartsWith et pas StartWith
c) J'ai créé le fichier à ouvrir avec le bloc note. Lorsque on enregistre le fichier, le codage par défaut est ANSI = UTF7. Il faut donc spécifier ce même codage lorsque on ouvre ce fichier dans notre code pour que le ° soit correctement décodé.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 16 mai 2008 à 18:29
Salut,
Si tu veux classer soit par leur N° soit par leurs heures, n'utilise pas une ListBox mais une ListView.
' Lire les lignes du fichier
Dim Lines() as String = IO.File.ReadAllLines("C:\Fichier.txt")
' Parcourir chaque ligne du fichier
For Each Line As String In Lines
' Vérifier que la ligne commence par "N° du Code :"
If Line.StartWith("N° du Code :") Then
' Enlever le début inutile de la ligne (12 = longueur de la chaine "N° du Code :")
Line = Line.SubString(12).Trim
' Extraire le code
Dim Code as String = Line.SubString(0, Line.IndexOf(" ")).Trim
' Extraire l'heure
Dim Time as String = Line.SubString(Line.IndexOf(" ")).Trim
' Créer et ajouter l'item à la ListView
Dim Item As New ListViewItem(Code)
Item.SubItems.Add(Time)
ListView1.Items.Add(Item)
cs_Fripouil
Messages postés175Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention 8 mai 2017 19 mai 2008 à 15:18
Merci Kevin.Ory et les autres.
Mais j' ai un autre probléme, comment comparer 2 listview ainsi créées et afficher dans une 3éme les éléments manquants de la listview2 par rapport à la listview1.
Car dans ce cas, faut il comparer les items et les subitems ? ai-je bien compris ?
Et pour ma troisiéme, faut il faire la même manip pour créer les items manquants ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 19 mai 2008 à 19:47
Car dans ce cas, faut il comparer les items et les subitems ? ai-je bien compris ?
Forcément il faudra aussi comparer le SubItem si l'heure est importante dans ton tri.
Tu peux aussi d'abord créer une liste avant d'ajouter tes items à la ListBox (List(of xxxx))
Et pour ma troisiéme, faut il faire la même manip pour créer les items manquants ?
Ben.. a toi de voir. Mtn tu sais ajouter des Items à une ListView, à toi d'imaginer ton programme