Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Encore un programme de dump... | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Encore un programme de dump... Mar 4 Juin 2013 - 18:11 | |
| Je vous présente mon logiciel gratuit de dump fichier ( ) Une nouvelle variante, qui utilise accessoirement la SUB calculette hexa. Elle fait appel à une Dll de Klaus bien pratique pour faire des recherches dans un fichier: la lecture du fichier complet dans une string (je n'ose pas dire un string, pour éviter toute confusion ). Pour la traduction en hexa, c'est la fonction Panoramic Filebin_Hexa_Read qui s'en charge, même si elle est limitée à 2000 octets à la fois, mais c'est suffisant pour présenter une page. Je précise pour ygeronimi: un dump fichier ça sert à étudier la structure et le contenu d'un fichier, quel qu'il soit (tu m'avais posé la question...). - Code:
-
LABEL Quit, Chfich, Dump, Clicbut, GoAds, Imprime, Calcul, Aide LABEL ChAsc, ChHex, Recher, Recsui, Quitrec, Survh, Mess DIM f$, sz%, adb%, adf%, a$, ad$, b$, c$, bufh$, ood%, ol%, nla%, noc%, i%, j%, k% DIM lad%, tyr%, xr%, sq$, buf$, bfr$, ftmp$, h0% ftmp$ = "C:\TEMP\Fimpr.txt"
h0% = 900: WIDTH 0,630: HEIGHT 0,h0%: BORDER_SMALL 0 FONT_BOLD 0: COLOR 0,190,255,255: CAPTION 0, " - Dump fichier -" MAIN_MENU 1 SUB_MENU 2: PARENT 2, 1: CAPTION 2, "Fichier" SUB_MENU 3: PARENT 3,2: CAPTION 3, "Ouvrir": ON_CLICK 3, Chfich SUB_MENU 4: PARENT 4,2: CAPTION 4,"Imprimer la page": ON_CLICK 4,Imprime SUB_MENU 5: PARENT 5,2: CAPTION 5, "Quitter": ON_CLICK 5, Quit SUB_MENU 10: PARENT 10,1: CAPTION 10, "Chercher" SUB_MENU 11: PARENT 11,10: CAPTION 11, "Recherche Ascii": ON_CLICK 11,ChAsc SUB_MENU 12: PARENT 12,10: CAPTION 12, "Recherche Hexa": ON_CLICK 12,ChHex SUB_MENU 20: PARENT 20,1: CAPTION 20, "Calculette": ON_CLICK 20, Calcul SUB_MENU 30: PARENT 30,1: CAPTION 30,"?": ON_CLICK 30, Aide ol% = 16: ' octets par ligne LIST 90: TOP 90,24: LEFT 90,0: WIDTH 90,WIDTH(0)-16: HEIGHT 90,h0%-84 FONT_NAME 90,"Lucida Console": FONT_SIZE 90,10: FONT_BOLD_OFF 90 ALPHA 91: TOP 91,3: LEFT 91,5: CAPTION 91,"Adresse: H" EDIT 92: LEFT 92,55: WIDTH 92,80: COLOR 92,255,255,180 BUTTON 93: LEFT 93,150: WIDTH 93,30: HEIGHT 93,22: CAPTION 93,"Go" ON_CLICK 93, GoAds
BUTTON 94: LEFT 94,260: CAPTION 94,CHR$(235) BUTTON 95: LEFT 95,LEFT(94)+35: CAPTION 95,CHR$(233)+CHR$(233) BUTTON 96: LEFT 96,LEFT(95)+35: CAPTION 96,CHR$(233) BUTTON 97: LEFT 97,LEFT(96)+35: CAPTION 97,CHR$(234) BUTTON 98: LEFT 98,LEFT(97)+35: CAPTION 98,CHR$(234)+CHR$(234) BUTTON 99: LEFT 99,LEFT(98)+35: CAPTION 99,CHR$(238) FOR i% = 94 TO 99 WIDTH i%,30: HEIGHT i%,22 FONT_NAME i%,"Wingdings": : FONT_SIZE i%,12: FONT_BOLD_OFF i% ON_CLICK i%,Clicbut NEXT i%
' Recherche FORM 100: TOP 100,40: LEFT 100,WIDTH(0): HEIGHT 100,150: BORDER_SMALL 100: HIDE 100 COLOR 100,180,255,255: FONT_BOLD 100: CAPTION 100, "RECHERCHE" ALPHA 101: PARENT 101,100 EDIT 102: PARENT 102,100: TOP 102,20: WIDTH 102,WIDTH(100)-16 CHECK 103: PARENT 103,100: TOP 103,40: LEFT 103,10: WIDTH 103,200 CAPTION 103,"Respecter la casse" ALPHA 104: PARENT 104,100: TOP 104,60: LEFT 104,25: COLOR 104,255,255,128 BUTTON 105: PARENT 105,100: TOP 105,80: LEFT 105,100: CAPTION 105,"OK" ON_CLICK 105,Recher BUTTON 106: PARENT 106,100: TOP 106,TOP(105): LEFT 106,200: CAPTION 106,"Quitter" ON_CLICK 106, Quitrec
ood% = 199: OPEN_DIALOG ood%
nla% = INT((HEIGHT(90)-2)/13): ' nb de lignes affichables noc% = nla%*ol%: ' nb d'octets par page
TIMER 200: TIMER_INTERVAL 200,500: ON_TIMER 200,Survh: TIMER_OFF 200 END ' ============================================================================== Quit: TERMINATE ' ============================================================================== Chfich: a$ = FILE_NAME$(ood%): IF LEN(a$)<4 THEN RETURN f$ = a$: FILEBIN_OPEN_READ 1,f$: sz% = FILEBIN_SIZE(1): FILEBIN_CLOSE 1 CAPTION 0, f$ + " "+STR$(sz%)+" octets. (=h "+HEX$(sz%)+")" CLEAR 90 IF sz% = 0 THEN ITEM_ADD 90, "Fichier vide !": RETURN lad% = 3: ' nb de caractères adresse IF sz% > 4096 THEN lad% = 4 IF sz% > 65535 THEN lad% = 5 IF sz% > 1048575 THEN lad% = 6 IF sz% > 16777215 THEN lad% = 7 IF sz% > 268435455 THEN lad% = 8 adf% = sz%-noc%+ol% adb% = 0: GOSUB Dump buf$ = "" RETURN ' ============================================================================== Dump: ' dump à partir de adb% (multiple de ol% IF sz% = 0 THEN RETURN TIMER_OFF 200 IF adb% < 0 THEN adb% = 0 IF adb% > adf% THEN adb% = adf% adb% = ol%*INT(adb%/ol%) j% = noc%: IF (adb%+noc%) > sz% THEN j% = sz%-adb% FILEBIN_OPEN_READ 1,f$: FILEBIN_POSITION 1,adb%: FILEBIN_HEXA_READ 1,j%,bufh$ FILEBIN_CLOSE 1 CLEAR 90 FOR j% = 1 TO LEN(bufh$) STEP 2*ol% ad$ = RIGHT$("000000"+HEX$(adb%+INT(j%/2)),lad%) + ": ": b$ = " " FOR i% = j% TO j%+ol%*2-1 step 2 IF i% > LEN(bufh$) ad$ = ad$ + "__ ": b$ = b$ + " ": ' fin de fichier ELSE a$ = MID$(bufh$,i%, 2): k% = HEX(a$) ad$ = ad$ + a$ + " " IF k%<32 OR k%=129 OR k%=141 OR k%=143 OR k%=144 OR k%=157 OR k%=160 THEN k%=46 b$ = b$ + CHR$(k%) END_IF NEXT i% ITEM_ADD 90, ad$ + b$ NEXT j% TIMER_ON 200 RETURN ' ============================================================================== ChAsc: CAPTION 104,"": CAPTION 105,"OK": ON_CLICK 105, Recher SHOW 100: SHOW 103 tyr% = 0: CAPTION 101,"Rechercher en Ascii:" RETURN ' ============================================================================== ChHex: CAPTION 104,"": CAPTION 105,"OK": ON_CLICK 105, Recher SHOW 100: HIDE 103 tyr% = 1: CAPTION 101,"Rechercher en Hexa:" RETURN ' ============================================================================== Recher: a$ = TEXT$(102): IF a$ = "" THEN HIDE 100: RETURN IF buf$ = "" THEN ReadFile(f$): ' fichier entier -> buf$ IF tyr% = 0 ' recherche Ascii sq$ = a$: IF CHECKED(103) = 0 THEN sq$ = UPPER$(sq$) ELSE ' recherche Hexa FOR i% = LEN(a$) TO 1 STEP -1: ' suppression des espaces éventuels IF MID$(a$, i%, 1) = " " THEN a$=LEFT$(a$,i%-1)+MID$(a$,i%+1,500) NEXT i% sq$ = "" FOR i% = 1 TO LEN(a$) STEP 2 sq$ = sq$ + CHR$(HEX(MID$(a$, i%, 2))) NEXT i% END_IF xr% = 1: ' recherche à partir du début Recsui: ' recherche à partir de xr% TIMER_OFF 200 IF tyr% = 0 AND CHECKED(103) = 0 IF xr% > 1 bfr$ = MID$(buf$, xr%, LEN(buf$)) k% = INSTR(UPPER$(bfr$), sq$) ELSE k% = INSTR(UPPER$(buf$), sq$) END_IF ELSE IF xr% > 1 bfr$ = MID$(buf$, xr%, LEN(buf$)) k% = INSTR(bfr$, sq$) ELSE k% = INSTR(buf$, sq$) END_IF END_IF IF k% > 0 k% = k% -1: ' index par rapport à zéro IF xr% > 1 THEN k% = k% + xr%-1 CAPTION 104," Trouvé en " + HEX$(k%) + " " CAPTION 105, "Suivant": ON_CLICK 105,Recsui xr% = k%+2: ' pour recherche suivante éventuelle adb% = ol%*INT(k%/ol%): GOSUB Dump ELSE CAPTION 104, " Non trouvé ! " END_IF TIMER_ON 200 RETURN ' ============================================================================== Quitrec: HIDE 100 IF adb% > 0 THEN adb% = 0: GOSUB Dump: ' réaffichage du début RETURN ' ============================================================================== Clicbut: i% = NUMBER_CLICK SELECT i% CASE 94: adb% = 0 CASE 95: adb% = adb% - noc% CASE 96: adb% = adb% - ol% CASE 97: adb% = adb% + ol% CASE 98: adb% = adb% + noc% CASE 99: adb% = adf% END_SELECT GOSUB Dump RETURN ' ============================================================================== GoAds: a$ = TEXT$(92): IF a$ = "" THEN RETURN a$ = UPPER$(a$): k% = 0 FOR i% = LEN(a$) TO 1 STEP -1 j% = ASC(MID$(a$, i%, 1)) IF j% = 32 a$ = LEFT$(a$,j%-1)+MID$(a$,j%+1,LEN(a$): ' élimine les espaces ELSE IF j%<43 OR j%>70 THEN k% = 1: EXIT_FOR IF j%<65 AND j%>57 THEN k% = 1: EXIT_FOR IF j%=44 OR j%=46 OR j%=47 THEN k%=1: EXIT_FOR END_IF NEXT i% IF k% = 1 THEN a$ = "Caractère incorrect !": GOSUB Mess: RETURN k% = INSTR(a$,"+"): IF k% = 0 THEN k% = INSTR(a$,"-") IF k% > 0 j% = HEX(MID$(a$,k%+1,LEN(a$)-k%)) i% = HEX(LEFT$(a$,k%-1)) IF INSTR(a$,"+")>0 adb% = i% + j% ELSE IF j% > i% THEN a$ = "Valeurs incorrectes !": GOSUB Mess: RETURN adb% = i% - j% END_IF ELSE adb% = HEX(a$) END_IF GOSUB Dump RETURN ' ============================================================================== Imprime: ' Impression de la page affichée IF COUNT(90) = 0 THEN RETURN FILE_OPEN_WRITE 1, ftmp$ FILE_WRITELN 1, f$ FOR i% = 1 TO COUNT(90) FILE_WRITELN 1, ITEM_READ$(90, i%) NEXT i% FILE_CLOSE 1 EXECUTE_WAIT "Notepad.exe /P " + ftmp$ FILE_DELETE ftmp$ RETURN ' ============================================================================== Calcul: TIMER_OFF 200 Calcul_Hexa(500,100,100, 1) TIMER_ON 200 RETURN ' ============================================================================== Survh: IF HEIGHT(0) = h0% THEN RETURN h0% = HEIGHT(0) HEIGHT 90,h0%-84 nla% = INT((HEIGHT(90)-2)/13) noc% = nla%*ol% IF f$ <> "" THEN adf% = sz%-noc%+ol%: GOSUB Dump RETURN ' ============================================================================== Mess: TIMER_OFF 200 MESSAGE a$ TIMER_ON 200 RETURN ' ============================================================================== Aide: a$ = " - DUMP FICHIER -"+CHR$(10)+CHR$(10) a$=a$+"Menus :"+CHR$(10) a$=a$+"- Fichier : choix du fichier à dumper."+CHR$(10) a$=a$+" La fonction d'impression est succincte: impression de la page"+CHR$(10) a$=a$+" affichée à l'écran."+CHR$(10) a$=a$+"- Edit : recherche mode Ascii ou hexadécimal. En mode hexadécimal,"+CHR$(10) a$=a$+" les octets peuvent être séparés ou non par un espace."+CHR$(10) a$=a$+"- Calculette: les quatre opérations en mode hexadécimal."+CHR$(10)+CHR$(10) a$=a$+"Boutons flèches :"+CHR$(10) a$=a$+" - flèche vers le haut à gauche :"+CHR$(9)+"début de fichier."+CHR$(10) a$=a$+" - double flèche vers le haut :"+CHR$(9)+"page précédente."+CHR$(10) a$=a$+" - une flèche vers le haut :"+CHR$(9)+CHR$(9)+"recul d'une ligne."+CHR$(10) a$=a$+" - une flèche vers le bas :"+CHR$(9)+CHR$(9)+"avance d'une ligne."+CHR$(10) a$=a$+" - double flèche vers le bas :"+CHR$(9)+"page suivante."+CHR$(10) a$=a$+" - flèche vers le bas à droite :"+CHR$(9)+"fin de fichier."+CHR$(10)+CHR$(10) a$=a$+"Accès à une adresse donnée : remplir le champ 'Adresse' en"+CHR$(10) a$=a$+"hexadécimal, puis bouton 'Go'."+CHR$(10) a$=a$+"L'adresse peut être donnée sous la forme d'une addition ou d'une"+CHR$(10) a$=a$+"soustraction, par exemple: 1BF0+7E0" GOSUB Mess RETURN ' ============================================================================== SUB ReadFile(f$) ' Lecture d'un fichier entier dans une chaîne buf$ (appel de KGF.dll) IF VARIABLE("buf$") = 0 THEN DIM buf$ DIM_LOCAL rs% IF LABEL("Nor_dll") = 0 THEN LABEL Nor_dll ON_ERROR_GOTO Nor_dll: ' si pas de dll chargée, dll_off -> erreur DLL_OFF: ' à tout hasard Nor_dll: OFF_ERROR_GOTO DLL_ON "C:\PANORAMIC\KLAUS\DLLs\KGF.dll" FILEBIN_OPEN_READ 9, f$: buf$ = STRING$(FILEBIN_SIZE(9)," "): FILEBIN_CLOSE 9 rs% = DLL_CALL2("ReadBinaryFileToString",ADR(f$),ADR(buf$)) END_SUB ' ============================================================================== SUB Calcul_Hexa(P,x,y,mode) ' calculette hexadécimal ou décimal ' Paramètres: P = 1er de 26 objets consécutifs de P à P+25, x,y = emplacement ' mode = 0 décimal, mode = 1 hexadécimal (permutable en cours d'utilisation) DIM_LOCAL n, xc, yc, yd, xd, ax$, wa%, lb: lb = 30 IF VARIABLE("Calcul_id")=0 ' Variables/labels globales: on n'a pas le choix, il faut gérer des événements. LABEL Calcul_click, Calcul_val: ' sous-programmes inclus DIM Calcul_id: Calcul_id = P DIM Calcul_valp, Calcul_ope DIM Cal_i%, Cal_hx%, Cal_x, Cal_y, Cal_vl, Cal_vi, Cal_va$, lab$(5,3) DATA "Calculatrice_data" DATA "D","E","F","hd","A","B","C"," /","7","8","9","x" DATA "4","5","6","-","1","2","3","+","C","0",CHR$(7),"=" ' on pointe sur les bons datas RESTORE: READ lab$(0,0) WHILE lab$(0,0)<>"Calculatrice_data": READ lab$(0,0): END_WHILE FORM P: TOP P,y: LEFT P,x: WIDTH P,160: HEIGHT P,290: BORDER_SMALL P COLOR P,255,164,128: ' HIDE P n = P + 1 LIST n: PARENT n,P: TOP n,0: WIDTH n,WIDTH(P)-16: HEIGHT n,25 COLOR n,200,200,200: FONT_NAME n,"Lucida Console": FONT_SIZE n,14 n = n + 1: yd = 30: xd = 5 FOR yc = 0 TO 5 FOR xc = 0 TO 3 PICTURE n: PARENT n,P: TOP n,yd+(lb+5)*yc: LEFT n,xd+(lb+5)*xc WIDTH n,lb: HEIGHT n,lb READ lab$(yc,xc) 2D_TARGET_IS n: COLOR n,128,128,128: 2D_FILL_COLOR 128,128,128 2D_PEN_COLOR 164,164,164 IF xc = 0 AND yc = 5 COLOR n,164,0,0: 2D_FILL_COLOR 164,0,0: ' touche 'C' 2D_PEN_COLOR 200,0,0 ELSE IF xc = 3 AND yc = 0 COLOR n,0,128,0: 2D_FILL_COLOR 0,128,0: ' touche 'hd' 2D_PEN_COLOR 0,164,0 ELSE IF xc = 3 OR (xc=2 AND yc=5): ' touches opérations COLOR n,80,80,80: 2D_FILL_COLOR 80,80,80 2D_PEN_COLOR 120,120,120 END_IF END_IF END_IF PRINT_TARGET_IS n FONT_COLOR n,255,255,255: FONT_SIZE n,18: FONT_BOLD n ax$ = lab$(yc,xc): wa% = TEXT_WIDTH(ax$,n) PRINT_LOCATE (lb-wa%)/2,0: PRINT lab$(yc,xc) 2D_PEN_WIDTH 3: 2D_LINE 1,lb-2,1,1: 2D_POLY_TO lb-2,1 2D_PEN_COLOR 0,0,0: 2D_LINE lb-2,1,lb-2,lb-2: 2D_POLY_TO 2,lb-2 ON_CLICK n, Calcul_click n = n + 1 NEXT xc NEXT yc HEIGHT P,272: CAPTION P, " - CALCULETTE -" ITEM_ADD P+1, STRING$(11," ")+"0" PRINT_TARGET_IS 0: 2D_TARGET_IS 0 END_IF Cal_hx% = mode: ' =0 décimal, =1 hexadécimal IF mode = 0 HIDE P+2: HIDE P+3: HIDE P+4: HIDE P+6: HIDE P+7: HIDE P+8: ' touches A à F ELSE HIDE Calcul_id+24: ' Touche '.' END_IF SHOW Calcul_id: TO_FOREGROUND Calcul_id EXIT_SUB Calcul_click: ' Sous-programme événement: appui sur une touche de la calculette Cal_i% = NUMBER_CLICK-(Calcul_id+2) Cal_y = INT(Cal_i%/4): Cal_x = Cal_i%-Cal_y*4 Cal_va$ = TRIM$(ITEM_READ$(Calcul_id+1,1)) IF Cal_hx% = 0 Cal_vi = VAL(Cal_va$) ELSE Cal_vi = HEX(Cal_va$) END_IF IF Cal_x < 3 ' touche valeur numérique 0 à 9 (décimal) ou 0 à F (hexa) IF Cal_y < 5 OR Cal_x = 1 IF Cal_hx% = 0 Cal_vl = VAL(lab$(Cal_y,Cal_x)) ELSE Cal_vl = HEX(lab$(Cal_y,Cal_x)) END_IF IF Cal_vi = 0 Cal_va$ = lab$(Cal_y,Cal_x) ELSE IF Cal_hx% = 0 Cal_i% = INSTR(Cal_va$,".") IF Cal_i% > 0 Cal_i% = 1+LEN(Cal_va$)-Cal_i% Cal_x = Cal_vi + Cal_vl/POWER(10,Cal_i%) ELSE Cal_x = Cal_vi*10+Cal_vl END_IF ELSE Cal_x = Cal_vi*16+Cal_vl END_IF IF Cal_x > 2147483647 THEN MESSAGE "Dépassement !": RETURN IF Cal_hx% = 0 Cal_va$ = STR$(Cal_x) ELSE Cal_va$ = HEX$(Cal_x) END_IF END_IF GOSUB Calcul_val ELSE IF Cal_x = 0: ' touche 'C' clear CLEAR Calcul_id+1 ITEM_ADD Calcul_id+1, STRING$(11," ")+"0" ELSE ' touche point décimal (= virgule, calcul décimal) Cal_va$ = Cal_va$ + ".": GOSUB Calcul_val END_IF END_IF ELSE ' Dernière colonne ' touche 0: bascule modes hex/dec ' touche 1: division 2: multiplication 3: soustraction 4: addition ' touche 5: égal, exécuter l'opération IF Cal_y = 0: ' Touche 'hd' bascule entre les modes Hexa et Décimal IF Cal_hx% = 0 SHOW Calcul_id+2: SHOW Calcul_id+3: SHOW Calcul_id+4 SHOW Calcul_id+6: SHOW Calcul_id+7: SHOW Calcul_id+8 HIDE Calcul_id+24: Cal_hx% = 1 CLEAR Calcul_id+1: Cal_va$ = HEX$(INT(Cal_vi)) CAPTION Calcul_id, " MODE HEXADÉCIMAL" ELSE HIDE Calcul_id+2: HIDE Calcul_id+3: HIDE Calcul_id+4 HIDE Calcul_id+6: HIDE Calcul_id+7: HIDE Calcul_id+8 SHOW Calcul_id+24: Cal_hx% = 0: ' mode décimal CLEAR Calcul_id+1: Cal_va$ = STR$(Cal_vi) CAPTION Calcul_id,"- MODE DÉCIMAL -" END_IF GOSUB Calcul_val ELSE IF Cal_y = 5: ' Touche '=': effectuer l'opération demandée IF Calcul_ope > 0 SELECT Calcul_ope CASE 1: Cal_vl = Calcul_valp/Cal_vi IF Cal_hx% = 1 THEN Cal_vl = INT(Cal_vl) CASE 2: Cal_vl = Calcul_valp*Cal_vi CASE 3: Cal_vl = Calcul_valp-Cal_vi CASE 4: Cal_vl = Calcul_valp+Cal_vi END_SELECT IF Cal_vl > 2147483647 THEN MESSAGE "Dépassement !": RETURN IF Cal_hx% = 0 Cal_va$ = STR$(Cal_vl) ELSE Cal_va$ = HEX$(Cal_vl) END_IF GOSUB Calcul_val Calcul_ope = 0 END_IF ELSE Calcul_ope = Cal_y Calcul_valp = Cal_vi Cal_va$ = "0": GOSUB Calcul_val END_IF END_IF END_IF RETURN Calcul_val: CLEAR Calcul_id+1: ' s/p affichage du résultat dans l'écran ITEM_ADD Calcul_id+1, RIGHT$(STRING$(11," ")+Cal_va$, 12) RETURN END_SUB ' ============================================================================== Maj 5/6: la calculette intégrée fait également le décimal, en plus de l'hexa 7/6: possibilité de redimensionner la fenêtre en hauteur en cours d'utilisation, la fenêtre dump suit.
Dernière édition par JL35 le Ven 7 Juin 2013 - 23:24, édité 3 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 4 Juin 2013 - 18:44 | |
| Mon petit doigt me dit que çà ressemble à du foutage de gueule.... Ceci dit, c' est joli programme... de quoi déjà...ha...de dump. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Encore un programme de dump... Mar 4 Juin 2013 - 19:05 | |
| Heu... çà te sert à quoi toutes ces hiéroglyphes... Y en a qui aime se prendre la tête A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un programme de dump... Mar 4 Juin 2013 - 23:40 | |
| C'est très utile quand j'ai commencé sur l'apple II, on editer les sauvegardes en faisant des dump des fichiers et en modifiants les valeurs hexa pour avoir des objets magiques ou des personnages plus forts dans les jeux (à l'époque Wizardy et compagnie ...). On s'en servait aussi accessoirement pour faire sauter des protections en remplaçant des bouts de codes par des nop si je me souviens bien (des instructions qui ne font rien, équivalent en assembleur à un REM dans un programme Basic)
Souvenirs, souvenirs ... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 0:17 | |
| Eh bien oui, et quand on programmait en assembleur c'était même indispensable. Et quand il fallait se taper tout un vidage mémoire (un dump) en hexadécimal pour trouver où et pourquoi s'était produit le plantage... comme tu dis, souvenirs souvenirs, et pas que des bons, des bien angoissants aussi ! Enfin, je ne vais pas vous raconter mes souvenirs de la guerre des tranchées | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 7:50 | |
| Donc, ça ne sert plus beaucoup.
Franchement JL35, ça devait pas être de la tarte de programmer à ton époque. Le langage en clair, c'est tout de même plus sympa.
A+ | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 5 Juin 2013 - 8:48 | |
| Ne t' en fais pas JL35, moi mon premier était un Mac avec 250 mo de disque dur. J' ai raté la belle époque parce que mes parents ne pouvaient pas acheter un ordi mais....finalement je ne regrette pas .... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 8:50 | |
| Moi mon Hector a était mon cadeau commun de communion. J'en révais depuis des années ... J'avais 12 ans | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 11:03 | |
| Pauvre de moi ! J’ai commencé avec un ZX81 doté de 1Ko de mémoire vive et de 8Ko de mémoire morte. J’ai fais le DUMP de ces 8 Ko à l’écran (écran par écran en utilisant l’instruction SCROLL) et je les ai recopiés (peu à peu) sur un cahier pour voir comment le miracle se faisait ! Ça me prenait plusieurs jours pour en venir à bout. Une imprimante, à cette époque, était hors de mes moyens !
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 11:36 | |
| J'avais de la chance j'avais une Epson LC10 couleur (Imprimante à aiguilles avec 4 couleurs sur le ruban, l'impression d'une page en couleur devait prendre dans les 30 mn dans un bruit du tonnerre ...) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 13:43 | |
| J'étais déjà dans l'informatique quand j'ai eu en mains ma première calculette, tout le monde était épaté. et après, tous les stades de la micro, depuis je crois le ZX81. @Jean Claude - Citation :
- Donc, ça ne sert plus beaucoup.
Sans doute, mais tout dépend de ce qu'on fait avec l'informatique. Personnellement je peux t'assurer que je m'en sers beaucoup, constamment, par exemple (entre autres) si je m'intéresse aux images et que je veux connaître la structure des différents formats, et éventuellement modifier certains éléments, et d'une manière générale pour analyser le contenu d'un fichier inconnu. J'ai beaucoup plus l'usage de l'accès au contenu d'un fichier en mode binaire que des fonctions 3D par exemple, mais c'est sans doute lié à mes origines informatiques. Il y a de quoi faire pour tout le monde, et c'est très bien comme ça. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 15:42 | |
| Je suis bien d'accord, il faut être tombé dans la marmite tout petit, ce qui est ton cas.
A+ | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 15:50 | |
| Excellent programme JL35, je prend! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 16:16 | |
| Enfin un connaisseur, merci bignono ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 16:21 | |
| Bah, merci pour moi JL35 ... tout ça par ce que je l'ai adopté sans dire "J'achète !!" Bon ok alors je l'écris: il est tellement excellent et utile ton programme JL35 qu'il faut le mettre en exe téléchargeable sur le site du mag | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 16:32 | |
| Alors là, deux d'un coup, merci Jicehel ! Ne t'inquiète pas, je sais bien que c'est utile et j'espère que ce sera utile à d'autres, c'est normal d'avoir surtout les avis négatifs (ou neutres), quand on est satisfait on n'éprouve pas forcément le besoin de le dire et c'est très bien comme ça. Pour l'exe, je ne connais pas du tout votre mécanique de magazine, j'avoue que je suis resté (égoïstement) à distance de tout ça, en tout cas tu as ma bénédiction sans condition pour faire tout ce que tu voudras du source ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Mer 5 Juin 2013 - 19:02 | |
| J'ai fait une mise à jour du programme, la SUB Calculette fait également les calculs en décimal en plus de l'hexa, et les conversions d'un système vers l'autre. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Encore un programme de dump... Ven 7 Juin 2013 - 22:27 | |
| Petite amélioration: possibilité de redimensionner la fenêtre en hauteur en cours d'utilisation, le nombre de lignes de dump affichées suit. Et j'ai ajouté un peu de relief sur les boutons de la calculette, pour faire plus joli | |
| | | Contenu sponsorisé
| Sujet: Re: Encore un programme de dump... | |
| |
| | | | Encore un programme de dump... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |