|
| Cherche Script edition hexadecimal | |
| | Auteur | Message |
---|
SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 16:16 | |
| Bonjour.
J'aimerais savoir s'il est possible avec Game Maker d'explorer "hexadecimalement".
En gros voilà ce qui m'interraiserait: -hex_get(arg0,arg1,file) Fonction permettant de recuperer une chaine de caractère hexadecimal commençant à arg0 (Offset) et finissant à arg1 (Offset)
-hex_get2(arg0,arg1,file) Fonction permettant de recuperer une chaine de caractère hexadecimal commençant à arg0 (Offset) et se finissant si rencontre arg1 (ex: 0F 0A)
-hex_search(arg0,arg1,file) Fonction cherchant un caractere arg1 (ex: 0f 0a) à partir de arg0 (Offset) comme debut et retournant la position ou il 'a trouver en Offset.
Convertion: ord -hex2ord(arg0) Meme principe que la fonction ord() mais en hexadecimal.
-ord2hex(arg0) La même chose mais à l'envers.
chr -hex2chr(arg0) Meme principe que la fonction chr() mais en hexadecimal.
-chr2hex(arg0) La même chose mais à l'envers.
decimal -hex2dec(arg0) Converti un caratere hexadecimal en decimal. (ex: 60 -> 100)
-dec2hex(arg0) La même chose mais à l'envers.
string -hex2string(arg0) Converti un caratere hexadecimal en string. (ex: 4C 6F 6C -> Lol)
-string2hex(arg0) ------------------------------ Voilà ce que j'aimerais biensure je ne vous demande pas de tous faire pour moi!(sauf si vous avez le courage!) Mais juste de me mettre sur la voie. Personellement les fonction les plus importantes je les ai misent au dessus car je pourrait me debrouiller pour faire celle que j'aimerais parcontre si j'avais tous mis la liste serait plus grande.
Pour faire simple j'aimerais toutes les fonctions file_bin_x qui marche avec le système binaires en file_hexa_x qui serait la même chose mais qui marche avec le système hexadecimal.
En tous cas merci d'avance!
Dernière édition par SPLN le Ven 12 Mar 2010 - 22:22, édité 2 fois |
| | | bibi675 Utilisateur confirmé: Rang *****
Messages : 2456 Localisation : Oise Projet Actuel : Jeu par navigateur original
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 17:35 | |
| Utilité ?
Si possible, avant d'aider quelqu'un pour faire des choses compliqués, j'aimerais savoir à quoi cela peut bien servir et si on ne peut pas faire ça plus simplement. |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 19:32 | |
| deja une fonction qui transforme un nombre décimal en hexa : dectohex - Code:
-
var n,s,r,c,sr,i; n = argument0; s = "" sr = ""
if(n == 0) return "0"
while(n != 0) { r = n mod 16; n = (n-r)/16; if(r<10) c = chr( r + ord('0') ) else c = chr( r-10+ord('A') ) s += c }
for(i=string_length(s) ; i>=0 ; i-=1) sr += string_copy(s,i+1,1)
return sr
Dernière édition par onilink_ le Ven 12 Mar 2010 - 23:18, édité 1 fois |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 19:48 | |
| Ensuite hextodec - Code:
-
var s,r,l,cc,c,i; s = string_upper(argument0) r = 0 l = string_length(s)
for(i=0 ; i<l ; i+=1) { cc = ord(string_copy(s,i+1,1)) if(cc <= ord('9')) c = cc - ord('0') else c = 10 + cc - ord('A') r += c*power(16,l-i-1) }
return r
Ensuite pour le reste j'ai beau relire je comprend pas ce que tu veux, mais je pense qu'avec ça tu sauras le faire tout seul. Voila
Dernière édition par onilink_ le Ven 12 Mar 2010 - 23:18, édité 1 fois |
| | | SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 20:56 | |
| En gros se que je veux c'est recuperer des bloc de données hexadécimal. pour faire simple: Voilà un fichier: _________ _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F00000000: 43 42 4E 41 20 41 72 65 20 54 68 65 20 57 6F 72 CBNA Are The Wor00000010: 6C 64 21 00 00 00 00 00 00 00 00 00 00 00 00 00 ld!ÐEn gros voilà un exemple je veux récupérer le bloc hexa ou le texte souligné 1 des 2 bon je prefere quand même le texte. hex_get(0x00000000,0x00000013) ou hex_get(0,13) ou sinon hex_get2(0,21) ou hex_get2(0,'Ð') pour avoir - Mon Code a écrit:
var_hex = hex_get2(0,21) show_message(var_hex) //= show_message("CBNA Are The World!") Sa permettrait de faire pas mal de truc! A au faite merci onilink_ ! J'ai aussi oublier dans les 3 premiers "scripts" de rajouter un 3 arguments pour le fichier à explorer. EDIT: Utilité:Récupérer le contenu ID3,2 dans des fichier audio/vidéo Création de fichier externe: si tu écris dans un fichier.txt: Fichier.txt (15 octets) "123456789012345" -> "31 32 33 34 35 36 37 38 39 30 31 32 33 34 35" Fichier2.txt (6 octets) "70 48 86 0D DF 79" exemple: Cas 1: - Code:
-
fichier0 = file_text_open_read(arg0); fichier0b = file_text_read_string(fichier0); file_text_close(fichier0); show_message(fichier0b) Cas 2: - Code:
-
//hex_get(File,Offset Debut(inclus), Offset Fin (inclus)) var_hexa = hex2dec(hex_get(arg0,0,5))
show_message(var_hexa) Autre utilité:Pour les possesseur de PSP/PS2/Wii ceux qui connaissent Monster Hunter. Les quêtes sont stocker dans un fichier questXX.bin sachant que toutes les données de temps, les monstres, les maps, le prix de la quête, etc... sont en hexa.OK j'avoue il y a les descriptions qui ne le sont pas. exemple: 01 - Rathalos C'est un gain d'octet considérable surtout quand le fichier contient des trucs complexe sa permet aussi de crypter mais sans grande utilité dans ce cas. En gros sa peut permettre à créer un système d'ID. exemple*again*: On charge un fichier texte qui contient en hexa("00 60") - Code:
-
var_objet = "" var_hexa = hex_get(file,0,0) switch (var_hexa) //Système d'ID { case "00": var_obj = instance_create(obj0) ;break;
case "01": var_obj = instance_create(obj1) ;break; } if var_objet !="" { var_obj.pv = hex2_dec(hex_get(file,1,1)) //PV = 100 }
En gros voilà tous! |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 22:30 | |
| fileGetHex - Code:
-
//fileGetHex(fname,start,end) var ff,s,e,sr,ff,i;
ff = argument0 s = argument1 e = argument2
sr = ""
f = file_bin_open(ff,0) file_bin_seek(f,s) for(i=0 ; i<e-s ; i+=1) sr += dectohex(file_bin_read_byte(f)) file_bin_close(f)
return sr
exemple : fileGetHex("file",$5,$12) |
| | | onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Cherche Script edition hexadecimal Ven 12 Mar 2010 - 23:16 | |
| j'espere que ton bonheur est la ^^ - Spoiler:
#define dectohex var n,s,r,c,sr; n = argument0; s = "" sr = ""
if(n == 0) return "0"
while(n != 0) { r = n mod 16; n = (n-r)/16; if(r<10) c = chr( r + ord('0') ) else c = chr( r-10+ord('A') ) s += c }
for(i=string_length(s) ; i>=0 ; i-=1) sr += string_copy(s,i+1,1)
return sr #define hextodec var s,r,l,cc,c,i; s = string_upper(argument0) r = 0 l = string_length(s)
for(i=0 ; i<l ; i+=1) { cc = ord(string_copy(s,i+1,1)) if(cc <= ord('9')) c = cc - ord('0') else c = 10 + cc - ord('A') r += c*power(16,l-i-1) }
return r #define fileGetHex //fileGetHex(fname,start,end) var ff,s,e,sr,ff,i;
ff = argument0 s = argument1 e = argument2
sr = ""
f = file_bin_open(ff,0) file_bin_seek(f,s) for(i=0 ; i<e-s ; i+=1) sr += dectohex(file_bin_read_byte(f)) file_bin_close(f)
return sr #define fileHexSearch var f, s, c, i, byte, pos, char; f = file_bin_open(argument0,0) s = argument1
c = hextodec(string_copy(s,1,2)) i=-1 while(file_bin_position(f) < file_bin_size(f)) { byte = file_bin_read_byte(f) pos = file_bin_position(f)-1 if(byte == c) for(i=0 ; i<string_length(s)-2 && file_bin_position(f) < file_bin_size(f) ; i+=2) { byte = file_bin_read_byte(f) char = hextodec(string_copy(s,3+i,2)) if( byte != char ) break } if(i == string_length(s)-2) return pos else file_bin_seek(f,pos+1) }
return -1
|
| | | SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Re: Cherche Script edition hexadecimal Sam 13 Mar 2010 - 11:23 | |
| Merci c'est tout juste se qui me fallait grace à tes scripts j'ai pu créer ceux dont j'avais besoin. Merci! |
| | | Contenu sponsorisé
| Sujet: Re: Cherche Script edition hexadecimal | |
| |
| | | | Cherche Script edition hexadecimal | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |