Recuperer certaines plages de donnees dans un fichier binaire [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
18 avril 2006
-
Messages postés
3
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
18 avril 2006
-
Bonjour,
Je souhaiterais recuperer certaines plages de donnees dans un fichier binaire que j'ouvre avec MPHexeditor pour les afficher dans un tedit afin d'en faciliter la lecture et la modification.
Je n'ai aucune idée de la synthaxe...
Debutant sous Delphi

4 réponses

Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

un seul mot 'TStream' où 'TMemoryStream'
je n'ai pas ce composant sous les yeux mais normalement il possède un gestionnaire de Flux donc soit de un TFileStream soit un TMemoryStream(plus rapide)

le composant TStream offre un accès facile vers un fichier Binaire

Sert toi de Stream.position afin d'aller à l'endroit que tu souhaite
Sert toi de Stream.ReadBuffer(..) pour lire les données attention un transtypage s'avère être nécessaire
enfin sert toi de l'aide de Delphi pour plus d'infos concernant TStream :)

ça ne sert à rien de balancer du code bêtement, il faut déja connaître le fonctionnement des gestionnaires de Flux

tu as déja des indices ;)
@+
Messages postés
304
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
10 mars 2012

ah bah voilà !!! ça fait plaisir de voir quelqu'un qui fait un effort !!! d'habitude sur ce forum c'est à base de "hey j'ai un projet faites-le à ma place parce que j'ai pas que ça à faire moa !!!" mdr

Bon maintenant que tu sembles mieux comprendre le système des flux, là okay je peux te venir en aide !!!

HexEdit possède un événement "OnSelectionChanged" regarde dans l'inspecteur d'objets puis l'onglet "Evénements"

jusqu'à là c'est clair non ?
maintenant dans cette événement tu places ton code comme ceci

if HexEdit.SelCount <> 0 then
begin
HexEdit.SaveRangeToStream(TonStream , HexEdit.SelStart , HexEdit.SelCount)

end;//

Maintenant tu peux prendre soit un TStream où un TMemoryStream, le 1er n'offre pas de gestion d'enregistrement dans un fichier !!!

pour un TMemoryStream ne pas oublié de faire un "Clear" avant le tranfert des données dans ce flux.

@+
Messages postés
3
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
18 avril 2006

Ta reponse m'a mis sur la piste de nombreuses choses sans pour l'instant pouvoir arriver a un resultat positif mais j'y travaille. Effectivement MPHexEditor semble gerer TMemoryStream mais l'aide de Delphi est si vaste (tant mieux) que cela va me demander du temps avant de l'eplucher et surtout de comprendre.(En fait c'est mon premier prog...)
Merci infiniment de ta reponse rapide

Debutant sous Delphi
Messages postés
3
Date d'inscription
jeudi 30 mars 2006
Statut
Membre
Dernière intervention
18 avril 2006

Super, je suis enfin arrivé a ce que je voulais grace a toi! Je n'est pas compris encore comment j'ai fait (Une bonne dose de chance sans doute) mais je vais essayer de comprendre avant d'alller plus loin...Milles merci a toi

Debutant sous Delphi