Lecture d'un fichier Hexa [Résolu]

Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Dernière intervention
5 février 2015
- - Dernière réponse : cs_SEB73460
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Dernière intervention
5 février 2015
- 25 juil. 2007 à 18:39
Bonjour,

Pourriez-vous m'indiquer la marche à suivre pour pouvoir lire et affcher le contenu d'un fichier Hexadécimal dans un listview
En effet, je souhaiterai visualiser le contenu d'un fichier .Hex dans un listview comme dans le cas d'un editeur Hexadecimal
- est-ce que je dois convertir ce fichier avec la visu sur le listview ?
Merci pour votre aide
A+
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
3
Merci
salut,

ben, tu fais 16 colonnes puis un truc dans le genre de :

dim fichier as string = "",i as integer
dim fl as long = filelen(fichier)
dim data() as byte
redim data(fl-1)
open fichier for binary as #1
get #1,,data
close #1
dim pages as integer
pages = fl \ 16
for i = 0 to pages - 1
dim li as listitem
set li = ton_listview.items.add(hex$(data(i)))
li.subitems.add(hex$(data(i+1)))
li.subitems.add(hex$(data(i+2)))

li.subitems.add(hex$(data(i+3)))

...
next

if fl mod 16 = 1 then

dim li as listitem


set li = ton_listview.items.add(hex$(data(pages*16)))

end if

for i = 1 to (fl mod 16) - 1
li.subitems.add(hex$(data(pages*16+i)))
next

ShareVB

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ShareVB
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
1
Merci
salut,

oupss, j'avais pas fait gaffe que tu voulais du vb.net...

EBArtSoft> je me le suis demandé aussi...

'le cheminde ton fichier
dim fichier as string = ""
'pour lire ton fichier
dim fs as filestream = new filestream(fichier)
dim pages as integer = fs.length \ 16 ' 16 est le nombre de colonnes de ton affichage

'pour chaque ligne entière (16 bytes)
for i as integer = 0 to pages - 1
dim li as listviewitem
'remplit la ligne avec 16 octets
set li = ton_listview.items.add(hex(fs.readbyte()))
li.subitems.add(hex(fs.readbyte()))
li.subitems.add(hex(fs.readbyte()))
li.subitems.add(hex(fs.readbyte()))
...
next

'si il reste une ligne incomplète, moins de 16 octets de la position en cours à la fin du fichier
if fs.length mod 16 > 1 then
dim li as listviewitem
set li = ton_listview.items.add(hex(fs.readbyte()))
end if

'pour chaque octet supplémentaire de la ligne incomplète jusqu'à la fin du fichier
for i = 1 to (fs.length mod 16) - 1
li.subitems.add(hex(fs.readbyte()))
next

ShareVB
Commenter la réponse de ShareVB
Messages postés
4530
Date d'inscription
dimanche 29 septembre 2002
Dernière intervention
23 décembre 2014
0
Merci
Pourquoi dans un listview ?
la plus part des editeurs hexa ont leur propre controle d'affichage et d'edition ce qui leur permait :

1 - d'avoir une plus grand souplesse visuelle
2 - d'afficher plus vite les données
3 - de pouvoir editer les valeurs directement

Je te conseil fortement de créer un controle perso

@+

E.B.
Commenter la réponse de cs_EBArtSoft
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Dernière intervention
5 février 2015
0
Merci
Merci beaucoup pour ton code ShareVB

Je debute en Vb.net et ce n'est pas tres clair pour moi
 Pourrai tu me mettre un peu de commentaire pour m'aider à comprendre mieux ?

Je te remercie encore pour ton aide

A+ et merci encore
Commenter la réponse de cs_SEB73460
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Dernière intervention
5 février 2015
0
Merci
Merci beaucoup pour ton aide

Par contre, j'ai deux nom pas declaré "i" et "li"
est-ce normal ?
Merci 
A+
Commenter la réponse de cs_SEB73460
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Dernière intervention
13 janvier 2016
0
Merci
salut,

euh, normalement non mais :
dim i as integer
dim li as listviewitem

ShareVB
Commenter la réponse de ShareVB
Messages postés
259
Date d'inscription
vendredi 15 avril 2005
Dernière intervention
5 février 2015
0
Merci
Merci pour ta réponse,
Mla lecture se fait bien dans mon listview, mais a la fin de mon fichier j'ai des
FFFFFFFFF partout
Je souhaiterai egalement qu'a la premiere colonne de mon affichage , le  comptage des lignes se  fasse en Hexa
Mais je pense deja avoir une base solide avec ton bout de code
Je vais etudier cela pour complete mon code
Mes remerciements encore une fois
A+
Commenter la réponse de cs_SEB73460

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.