Lecture d'un fichier Hexa [Résolu]

cs_SEB73460 259 Messages postés vendredi 15 avril 2005Date d'inscription 5 février 2015 Dernière intervention - 22 juil. 2007 à 14:55 - Dernière réponse : cs_SEB73460 259 Messages postés vendredi 15 avril 2005Date d'inscription 5 février 2015 Dernière intervention
- 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
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 22 juil. 2007 à 21:55
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

Merci ShareVB 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de ShareVB
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 23 juil. 2007 à 20:07
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
cs_EBArtSoft 4530 Messages postés dimanche 29 septembre 2002Date d'inscription 23 décembre 2014 Dernière intervention - 23 juil. 2007 à 09:18
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
cs_SEB73460 259 Messages postés vendredi 15 avril 2005Date d'inscription 5 février 2015 Dernière intervention - 23 juil. 2007 à 18:42
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
cs_SEB73460 259 Messages postés vendredi 15 avril 2005Date d'inscription 5 février 2015 Dernière intervention - 24 juil. 2007 à 18:13
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
ShareVB 2717 Messages postés vendredi 28 juin 2002Date d'inscription 13 janvier 2016 Dernière intervention - 24 juil. 2007 à 19:46
0
Merci
salut,

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

ShareVB
Commenter la réponse de ShareVB
cs_SEB73460 259 Messages postés vendredi 15 avril 2005Date d'inscription 5 février 2015 Dernière intervention - 25 juil. 2007 à 18:39
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.