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
» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Yannick Aujourd'hui à 1:58

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Hier à 19:26

» Compilateur FBPano
par Mike Hier à 13:52

» un nouveau editeur panobasic
par Jean Claude Hier à 10:18

» Le compilateur.
par Pedro Alvarez Hier à 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
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 : 5920
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 : 7962
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 : 5920
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 : 7962
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: