Lire automatique listview1

Résolu
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022
- Modifié par hacker591 le 9/09/2014 à 18:04
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022
- 10 sept. 2014 à 17:52
Bonjour,

voici le code de lecture :
Private Sub ReadFile(FilePath As String)

        ListView1.Items.Clear()
        Dim input As New FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read)
        Dim reader As New BinaryReader(input)
        reader.BaseStream.Position = &H10
        For i = 0 To 16 <= arrêter de lire quand il y a 16 zéro à la place 16 position du fichier
            Dim position As Long = reader.BaseStream.Position
            Dim code As String = BitConverter.ToString(reader.ReadBytes(8)).Replace("-", "")
            Dim couleur As String = BitConverter.ToString(reader.ReadBytes(2)).Replace("-", "")
            reader.BaseStream.Position += 14
            Dim lvi As New ListViewItem("&H" & position.ToString("X4"))
            lvi.SubItems.AddRange(New String() {code, couleur})
            ListView1.Items.Add(lvi)
        Next
        reader.Close()
        input.Close()
End Sub


voici en image mon fichier DATA :


Je voudrais savoir si c'est possible arrêter de lire mon fichier a la fin quand il y a 16 zéro du fichier data?

Merci,

10 réponses

vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
9 sept. 2014 à 20:14
et qu'a-t-on pas compris ?
As-tu compris mon dernier message ?
1
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
9 sept. 2014 à 20:52
1) remplace le boucle For Next par une boucle Do loop !

2) If code = "0000000000000000" then exit Do pour sortir de la boucle
1
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
10 sept. 2014 à 17:19
2) If code = "0000000000000000" then exit Do pour sortir de la boucle

il suufit de mettre cette ligne à la bonne place dans le code : juste après la lecture de la variable Code par exemple
 Dim code As String = BitConverter.ToString(reader.ReadBytes(8)).Replace("-", "")
If code = "0000000000000000" then exit Do
et on sort de la boucle sans afficher les 0000000000000000
1
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
9 sept. 2014 à 18:13
Salut !
Est-ce que cela doit s'arrêter lorsque la valeur du code de la voiture est = à "0000000000000000" ?
Attention code est une chaine de caractères !

un simple
If code = "0000000000000000" then exit for
devrait suffire je pense ! et tu sors de la boucle
0
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
9 sept. 2014 à 18:20
Il faudrait aussi nous en dire un peu plus sur la structure de ton fichier : quelles sont les données qu'il contient et leurs types de données ainsi que le nombre d'octets de chacun des paramètres
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022

9 sept. 2014 à 18:41
salut,

quand je lie mon fichier de départ de la position &H10 . il arrêt de lire a la fin quand il y a 16 zéros("0000000000000000") <= comme tu vois la position 1A0 en photo à la place 16 position.

For i = 0 To arrêter de lire quand il y a 16 zéro


Pouvez-vous me comment on écrire avec le code lecture?
0
vb95
Messages postés
2778
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
5 juillet 2022
151
9 sept. 2014 à 19:03
Salut
les 16 zéros du code de la voiture sont en 1A8 et non 1A0 ! chaque bloc de données fait 24 octets : 8 pour le code de la voiture, 2 pour la couleur et 14 autres qui servent à quoi on ne sait pas !
On a fait une boucle de 0 à 16 pour lire 17 codes voitures et 17 couleurs . et si le fichier contient 20 codes voiture et 20 couleurs !
et si on modifie le code de lecture il faut aussi modifier le code d'écriture !
0
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022

9 sept. 2014 à 19:18
salut,

vous avez pas compris ce que je voudrais dire mon problème arrêt de lire a la fin quand il y a 16 zéro.

voici un exemple en photo :


j'ai ajouter dans le code :
For i = 0 to 17
0
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022

9 sept. 2014 à 20:45
oui, j'ai compris ce que tu as dit. je t'explique 8 pour le code de la voiture, 2 pour la couleur, 2 activer le code déblocage dans le garage.

je voudrais savoir comme faire a la fin de la position. il arrêt de lire çi il y a des zéro ?
0
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022

10 sept. 2014 à 17:13
Merci ça fonctionne correctement ce que je chercher. une dernière question : je voudrais si c'est possible ne pas afficher dans listview1 les zéros a la fin.

voici en image :


Merci de votre réponse.
Cordialement,
0
hacker591
Messages postés
34
Date d'inscription
mardi 10 juin 2014
Statut
Membre
Dernière intervention
26 janvier 2022

10 sept. 2014 à 17:52
salut,

Merci encore VB95. ce que je chercher pour lire automatique mon fichier DATA.

Merci a toi Vb95.

Cordialement,
0