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
» StratégoV8 et V9
par Minibug Aujourd'hui à 1:10

» Rotation d'une image d'un angle quelconque
par JL35 Hier à 23:02

» GRID_LOAD
par Jean Claude Hier à 21:04

» HVIEWER
par Yannick Hier à 20:31

» KGF_dll - nouvelles versions
par Klaus Mar 16 Jan 2018 - 21:28

» Déformation d'image en trapèze
par mindstorm Mar 16 Jan 2018 - 21:06

» Mah-Jong américain
par Jean Claude Lun 15 Jan 2018 - 19:37

» Problème avec Deepl
par Klaus Lun 15 Jan 2018 - 0:34

» Quelques nouvelles ...
par Jean Claude Ven 12 Jan 2018 - 22:40

» Renommer les instructions ITEM_... ?
par Jicehel Ven 12 Jan 2018 - 18:56

» Ludothèque Panoramic
par jjn4 Ven 12 Jan 2018 - 18:11

» sous-programmes et fonctions
par Jack Ven 12 Jan 2018 - 17:51

» Mah-Jong français
par Jean Claude Jeu 11 Jan 2018 - 22:15

» panoramic 0.9.28
par gigi75 Ven 5 Jan 2018 - 14:06

» Un jeu qui va vous énerver!
par Jean Claude Jeu 4 Jan 2018 - 22:05

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Janvier 2018
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
293031    
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 : 6072
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 : 8011
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 : 6072
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 : 8011
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 :: Vos sources, vos utilitaires à partager-
Sauter vers: