FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Synedit Parameters
par Yannick Aujourd'hui à 0:27

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Hier à 21:16

» Compilateur FBPano
par jean_debord Hier à 9:56

» Bienvenue à Virtualalan !
par UltraVox Hier à 9:18

» Concours de Morpions
par jjn4 Hier à 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

» >199
par maelilou Mar 20 Juin 2017 - 14:13

» NUMBER_FOCUS
par Yannick Lun 19 Juin 2017 - 15:25

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Petite sub de dump fichier

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Petite sub de dump fichier   Mer 8 Oct 2014 - 17:58

Ça peut servir à quiconque s'intéresse à la structure des fichiers, plutôt binaires mais pas forcément, même ponctuellement, pour un type de fichier donné (n'est-ce pas ygeronimi).
Pour être plus pratique à utiliser c'est sous forme d'une sub indépendante, appelable depuis n'importe où dans un programme.
Paramètres d'appel: le fichier à dumper, les coordonnées d'affichage et la hauteur de la fenêtre.
A l'appel, la sub génère un Form particulier qui contiendra tout le nécessaire. Ce Form sera supprimé en sortie de la sub.
Quatre boutons pour naviguer dans le dump: début du fichier, page précédente, page suivante, fin de fichier.
Et il est possible de modifier la hauteur de la fenêtre d'affichage à la souris en cours d'utilisation.
Code:

SUB DumpF(f$,x%,y%,h%)
' dump hexa de f$, affiché en x%,y% de l'écran, de hauteur h% pixels
' (on peut modifier la hauteur à la souris en cours d'utilisation)
IF LABEL("Butdum") = 0 THEN LABEL Butdum
IF LABEL("Dumdum") = 0 THEN LABEL Dumdum
IF LABEL("Clodum") = 0 THEN LABEL Clodum
DIM_LOCAL ff%,fh%,fd%,hl%,xd%,tp%,ads%,di%,dj%,dk%,ba$,ca$,cc$,sz%,nl%,rda$
fh% = h%: ' hauteur demandée du form
ff%=1000: FORM ff%: TOP ff%,y%: LEFT ff%,x%: WIDTH ff%,630: HEIGHT ff%,fh%
       BORDER_SMALL ff%: ON_CLOSE ff%,Clodum
LIST ff%+1: PARENT ff%+1,ff%: TOP ff%+1,0: WIDTH ff%+1,WIDTH(ff%)-16
       HEIGHT ff%+1,fh%-35: FONT_NAME ff%+1,"Lucida Console": FONT_SIZE ff%+1,10
BUTTON ff%+2: PARENT ff%+2,ff%: TOP ff%+2,1: WIDTH ff%+2,22: ' début fichier
       LEFT ff%+2,WIDTH(ff%+1)-23: CAPTION ff%+2,CHR$(235)
BUTTON ff%+3: PARENT ff%+3,ff%: TOP ff%+3,TOP(ff%+2)+25: WIDTH ff%+3,WIDTH(ff%+2)
       LEFT ff%+3,LEFT(ff%+2): CAPTION ff%+3,CHR$(233): ' page précédente
BUTTON ff%+4: PARENT ff%+4,ff%: TOP ff%+4,TOP(ff%+3)+25: WIDTH ff%+4,WIDTH(ff%+2)
       LEFT ff%+4,LEFT(ff%+2): CAPTION ff%+4,CHR$(234): ' page suivante
BUTTON ff%+5: PARENT ff%+5,ff%: TOP ff%+5,TOP(ff%+4)+25: WIDTH ff%+5,WIDTH(ff%+2)
       LEFT ff%+5,LEFT(ff%+2): FONT_BOLD ff%+5: CAPTION ff%+5,"Fin": ' fin fichier
FOR di%=ff%+2 TO ff%+4: FONT_NAME di%,"Wingdings": NEXT di%
FOR di%=ff%+2 TO ff%+5: ON_CLICK di%,Butdum: NEXT di%

FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9): FILEBIN_CLOSE 9
CAPTION ff%,f$+"  ("+STR$(sz%)+" octets = "+HEX$(sz%)+"h)"
hl% = TEXT_HEIGHT("AB",ff%+1): ' hauteur d'une ligne, en pixels
fd% = 0: xd% = 0: GOSUB Dumdum
WHILE fd% = 0
    IF HEIGHT(ff%) <> fh%: ' hauteur du form ff% modifiée par l'utilisateur
        fh% = HEIGHT(ff%): HEIGHT ff%+1,fh%-35: GOSUB Dumdum
    END_IF
    WAIT 300
END_WHILE
DELETE ff%: EXIT_SUB: ' clic de fin
' ..............................................................................
Dumdum:
nl% = INT(fh%/hl%)-3: ' nb de lignes affichables
tp% = 16*nl%: ' nb total d'octets affichés dans la page
IF xd%>(sz%-tp%) THEN xd% = sz%-tp%
IF xd%<0 THEN xd% = 0
FILEBIN_OPEN_READ 9,f$: FILEBIN_POSITION 9,xd%: ba$ = FILEBIN_HEXA_READ$(9,tp%)
FILEBIN_CLOSE 9
CLEAR ff%+1
ads% = xd%: rda$ = ""
FOR di% = 1 TO LEN(ba$) STEP 32
    rda$ = RIGHT$("00000"+HEX$(ads%),6) + ": ": ca$ = " "
    FOR dj% = di% TO di%+30 STEP 2
        cc$ = MID$(ba$, dj%, 2)
        rda$ = rda$ + cc$ + " ": dk% = HEX(cc$)
        IF dk% > 31
            ca$ = ca$ + CHR$(dk%)
        ELSE
            ca$ = ca$ + "."
        END_IF
    NEXT dj%
    ITEM_ADD ff%+1,rda$+ca$
    ads% = ads% + 16
NEXT di%
RETURN
' ..............................................................................
Butdum:
di% = NUMBER_CLICK: ' bouton cliqué
IF di% = ff%+2 THEN xd% = 0: ' début du fichier
IF di% = ff%+3 THEN xd%=xd%-tp%: ' page précédente
IF di% = ff%+4 THEN xd%=xd%+tp%: ' page suivante
IF di% = ff%+5 THEN xd%=sz%-tp%: ' Fin du fichier
GOSUB Dumdum
RETURN
' ..............................................................................
Clodum:
fd% = 1: ' clic sur la croix de fin
RETURN
END_SUB


Dernière édition par JL35 le Mer 8 Oct 2014 - 19:30, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 8 Oct 2014 - 19:28

Pour ta punition, je la publierai sur le site du mag... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5882
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Petite sub de dump fichier   Mer 8 Oct 2014 - 19:31

J'aime bien ce genre de punition, je suis un peu maso sans doute...
Cela dit, si ça peut en intéresser certains, tant mieux !
(il y a eu quelques petites modifs par rapport à la version initiale)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7809
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 8 Oct 2014 - 19:51

La sentence a été exécutée !
La sub est sur le site du Mag  (Procédures-Dump-DumpF) !
Deviendrai-je tyrannique ?.... scratch

lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Petite sub de dump fichier   

Revenir en haut Aller en bas
 
Petite sub de dump fichier
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Travaux pratiques: Dump fichier
» Petite vidéo
» fichier Thunderbird Document
» faire une copie du fichier de la license de SZ ?
» fichier swf

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: