begin process at 2008 07 09 05:18:33
1 207 198 membres
44 nouveaux aujourd'hui
14 130 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lire des infos spécifiques dans un fichier txt [ Divers / Débutants ] (Fripouil)

Lire des infos spécifiques dans un fichier txt le 16/05/2008 14:52:12

Fripouil
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

Fripouil

Re : Lire des infos spécifiques dans un fichier txt le 16/05/2008 15:15:03

NHenry
Membre Club
Bonjour

Ouvre le fichier en mode texte (en utilisant TextStream, voir MSDN), ensuite ReadLine et .SubString de String.

Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site

Re : Lire des infos spécifiques dans un fichier txt le 16/05/2008 18:29:38

Kevin.Ory
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)

    End If
Next



J'ai pas vérifier si le code fonctionne, mais je pense que c'est bon.
Après pour classer suivant la colonne, c'est un autre sujet. Il faut créer un Comparer pour la ListView.
[ Lien ]
Puis tu l'applique à la propriété ListViewItemSorter de la ListView:
[ Lien ]
(Il y a un très bon exemple de son utlisation)



Re : Lire des infos spécifiques dans un fichier txt le 18/05/2008 19:41:36

Fripouil
Merci,

mais dans ma listview je n' ai que les Codes qui apparaissent

Ai je bien fait de créer 2 colonnes dans ma listview : Codes et Heure ?


Fripouil

Re : Lire des infos spécifiques dans un fichier txt le 18/05/2008 19:50:22

Fripouil
PS et surement important :

Depuis ma premiére question sur ce sujet, j' ai modifié ma maniére de faire

Je récupére les infos de mon TXT dans une listbox, puis supprime les items : N° du Code :

Est ce cela le probléme ??
ou alors parce que j' ai créer 2 colonnes dans ma listview ??

Fripouil

Re : Lire des infos spécifiques dans un fichier txt le 19/05/2008 02:16:41

Kevin.Ory
Réponse acceptée !
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é.

Et voici le résultat:




Re : Lire des infos spécifiques dans un fichier txt le 19/05/2008 15:18:27

Fripouil
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 ?

Merci encore

Fripouil

Re : Lire des infos spécifiques dans un fichier txt le 19/05/2008 19:47:25

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



Re : Lire des infos spécifiques dans un fichier txt le 20/05/2008 06:20:50

Fripouil
Désolé mais je n' y arrive pas.

Je ne comprends pas comment comparer ses fichus listview.

J' ai beau bidouiller, j' ai sans arrêt des bugs.

J' ai déja eu du mal à comprendre pour 1 infos à comparer mais avec 2 !!!

Mais là, je dois mal m 'y prendre..

Fripouil


Classé sous : fichier, code, lire, infos, spécifiques

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS