AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [script] Editeur hexadecimal

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: [script] Editeur hexadecimal   Sam 18 Sep 2010 - 20:05

Permet de lire un fichier partiellement en hexa, et de retourner le tout dans une chaine de carateres.
Lit filename de byte_start a byte_end et fait de saut de lignes tous les lines_length. space indique si la chaine retourné doit etre espacée pour une meilleur lisibilité.

Code:
//read_hex(filename, byte_start, byte_end, lines_length, space)
f = file_bin_open(argument0, 0)
ret = ""

file_bin_seek(f, argument1)
cur = 0
len = 0
eof = file_bin_size(f)-1

while(cur<=min(eof,argument2)-argument1)
{
    value = file_bin_read_byte(f)
    len = string_length(ret)+1
    ret += string_copy("0123456789ABCDEF", value mod 16 + 1, 1)
    value = value div 16
    ret = string_insert( string_copy("0123456789ABCDEF", value + 1, 1) , ret, len)
    cur += 1
    if(argument4) ret += " "
    if(cur mod argument3 == 0)
        ret += "#"
}

file_bin_close(f)
return ret

Exemple d'editeur très très basique :
Code:
//A mettre dans Draw
if(!variable_local_exists('create'))
{
    font0 = font_add('courier', 12, 0, 0, 0, 255)
    draw_set_font(font0)
    x = 32
    y = 32
    nb_lines = 20
    cursor = 0
    create = 1
}
cursor += keyboard_check_pressed(vk_down) - keyboard_check_pressed(vk_up)*(cursor>0)
draw_text(x, y, read_hex("file.png", 16*cursor, 16*(nb_lines+cursor)-1, 16, 1))

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

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)

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 6:47

Bien joué! super
Je présume que si on charge un fichier enorme d'un coup, ça prendra enormement de temps.
( J'avais déja essayer une methode similaire. )
Mais ta méthode evite ce fameux défaut la lenteur de GM!

Q: Ca serait plus rapide avec une DLL, si je veux tous charger d'un coup?

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 7:33

Si j'ai fait cette fonction c'est justement pour éviter de tout charger d'un coup Wink
Par contre j'ai pas encore essayé avec de gros fichier, je vais voir ce que ça donne.

Pourquoi as tu besoin de charger tout d'un coup ?

Edit : Je viens d'essayer avec des fichiers de plus de 1Go et aucun ralentissement, aussi rapide qu'avec de tout petits fichiers :lng:

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

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)

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 10:36

Car je crée un système de fusion de fichiers.
Avec un header ou un footer.

En gros:
//HEADER (Possibilité 1)
//FICHIER
//FOOTER (Possibilité 2)

Deux possibilités:
//HEADER
Le header, est en premier donc je peux le lire via GM facilement et ensuite je retirerais le header via une fonction qui le supprimera et recréera le fichier original dans un dossier temporaire qui sera ensuite charger. (impossible via GM [J'ai essayé en copiant la partie //FICHIER dans un string mais c'est trop long]). Dans le cas du Header le fichier ne sera plus reconnu. Donc obliger de tous charger pour avoir la partie fichier. Un header un peu comme ID3 pour ceux qui connaissent.

//FOOTER
Soit le footer, qui lui est à la fin du fichier et n'empêche pas la lecture de ce dernier mais peux causer quelques soucis.
Le hic c'est trouvé les infos dedans qui sont assez grandes et qu'il puisse les charger (à mon avais faut que je bidouille file_bin(_seek) via un script pour lui apprendre à recherche un string [rien de très compliqué]). Mais lui peux être facilement supprimer.

Moi j'aurais préféré le header mais le footer est la seule solution fesable dans le cas de GM et dans la laquelle je peux me débrouiller.
En plus on pourra supprimer le footer via une fonction C++.

Sinon je viens de penser ce genre de script d'ouverture partiel est extrêmement pratique lors des téléchargements.
Sa me fait penser à Free Download Manager qui peut lui aussi le faire.


_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 10:39

Tu veux fusionner des fichiers de quels types ? Parce que les trucs header et footer je vois pas trop l'utilité ❓

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

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)

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 10:55

Ça concerne les fichiers Audio/Vidéo.
Fusion de Fichier .spXX (Créer par mon lecteur).

Mon lecteur SP Lecteur Multimedia est capable de drawer du texte et même des images en fonction de la position de la vidéo/musique.
et
Spoiler:
 
En gros rien de sorcier.

Ce principe permet l'insertion de Sous-Titre et évite de l'incruster dans la vidéo/musique sans pouvoir les retirés.
Donc en gros:
SP Lecteur Multimedia:
Chargera le Header: -> Decryptage
Chargera le fichier puis executera le header ou footer décrypté.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
onilink_
Modérateur
avatar

Messages : 8915
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 11:01

ah ben tu doit passer par du C/C++ , sinon sa risque d'etre long en effet.
En tout cas bonne chance.

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

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)

MessageSujet: Re: [script] Editeur hexadecimal   Dim 19 Sep 2010 - 11:18

Merci !

Oui je tenterais sûrement d'utiliser le C++ pour supprimer le header/footer c'est même certains.
Les sous-titres sont extrêmement facile à faire car j'ai prévu un éditeur fait avec GM fait pour qui créera le fichier.
Via plusieurs instances d'un objet "sous-titre" qui contiendront toutes les infos du style(le texte, la couleur, position, etc...)
Et auront une structure plus que basique.
XX = chr(0)

Structure:
Sous-titre1 XX Info1 XX Info2 XX Info3 XX etc...;
Sous-titre2 etc...

Donc pas trop de soucis à ce faire de se coté là.

Sur ce, [/HS].

Sinon ce script peut être extrêmement utile dans pleins de domaine tel que le téléchargement, même dans les jeux vidéo (évidemment ^^).

Exemple:
Tu as un fichier ou tu stocke tous les dialogues de ton jeu.
et tu fais show_message(read_hexa()). Mais d'abord je penserais à mettre un script pour convertir le hexa -> binaire -> string.
Ce que tu as déjà fait il me semble.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
Contenu sponsorisé




MessageSujet: Re: [script] Editeur hexadecimal   

Revenir en haut Aller en bas
 
[script] Editeur hexadecimal
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» script défilement texte ou image
» Biographie Editeur de rédaction
» Recherche testeur pour le script complémentaire du TdH
» 312.800 dollarpour le script du "Parrain" annoté p
» Ecriture cursive ou script ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: