Rapidq France forums

Forums d'aide et d'échanges autour de Rapidq

Vous n'êtes pas identifié.

#1 25-07-2010 13:18:34

mine2rien
Moderateur
Date d'inscription: 24-03-2004
Messages: 497

Fichier binaire (?)

Bonjour à tous,

je cherche à ouvrir et (decrypter??) un fichier qui semble être un binaire avec rapidq...
Je m'explique, j'ai en ma possession un fichier .dat(l'extension en soit n'a pas d'importance...) qui contient des données utilisées par un logiciel tiers.

A l'ouverture de ce fichier avec un editeur de texte, j'y trouve sans surprise kk chose comme:

Code:

DATaÎ
Ó
7à

...etc,etc

le fichier fait quelques kilos.
JE souhaite donc savoir s'il est possible d'ouvrir et rendre "lisible" les données contenue dans ce type de fichiers...
il me semble qu'en C++ il y a une méthode d'ouverture de fichier binaire - rien trouvé(ou mal cherché) de similaire pour rapidq...

Merci d'avance, sujet inconnu pour moi qu'est le binaire...


http://www.rapidq-france.org/forums/img/members/3/userbar1.jpg
http://www.rapidq-france.org/forums/img/members/3/userbar2.jpg

Hors ligne

 

#2 25-07-2010 15:19:02

garogorille68
Membre
Lieu: Mulhouse
Date d'inscription: 14-08-2009
Messages: 54

Re: Fichier binaire (?)

Hello mine2rien,
pour lire un fichier binaire, il suffit de l'ouvrir avec QFileStream et de le lire octet par octet (ou integer par integer, selon contenu) avec la méthode read(), un peu comme dans l'exemple tiré de l'aide :

$INCLUDE "RAPIDQ.INC"
DIM File1 AS QFILESTREAM
DIM B AS BYTE, I AS INTEGER

File1.Open("test.dat", fmOpenRead)
File1.Read(B) '-- Read a byte
File1.Read(I) '-- Read an integer

@+

garogorille

Hors ligne

 

#3 25-07-2010 16:01:10

mine2rien
Moderateur
Date d'inscription: 24-03-2004
Messages: 497

Re: Fichier binaire (?)

salut.. merci d'avoir répondu.

en utilisant l'exemple tiré de l'aide, ma console me retourne juste la valeur 0

$INCLUDE "RAPIDQ.INC"
DIM File1 AS QFILESTREAM
DIM B AS BYTE, I AS INTEGER

File1.Open("test.dat", fmOpenRead)
s$ = File1.Read(B) '-- Read a byte
s$ = File1.Read(I) '-- Read an integer

print s$
sleep 2
file1.close

...sniffff....


http://www.rapidq-france.org/forums/img/members/3/userbar1.jpg
http://www.rapidq-france.org/forums/img/members/3/userbar2.jpg

Hors ligne

 

#4 25-07-2010 21:49:27

garogorille68
Membre
Lieu: Mulhouse
Date d'inscription: 14-08-2009
Messages: 54

Re: Fichier binaire (?)

Euh, ça devrait marcher.
Est-ce que c'est parce que tu es en mode console?
Moi je fais tous mes progs en mode GUI. Je vais essayer quand j'aurai un peu de temps.

Hors ligne

 

#5 25-07-2010 22:16:30

garogorille68
Membre
Lieu: Mulhouse
Date d'inscription: 14-08-2009
Messages: 54

Re: Fichier binaire (?)

euh,
en plus, je n'arrive pas à compiler en mode console. Il me crée des EXE vides, sans msg d'erreur.
je dois avoir loupé un truc... Tant pis
J'ai peut-être ton explication : s'il ne trouve pas le fichier à ouvrir, il ne te prévient pas. Et lors de la lecture du byte, il te met zéro. Mets le nom complet avec son chemin...
J'ai eu ce pb avec l'exemple ci'dessous.
Bon, en mode GUI, ça donne ça. Copie le dans ton RQ, et compile (adapte le chemin à ton fichier , of course) :

$typecheck on
$include "rapidq.inc"

DECLARE SUB Button1Click (Sender AS QBUTTON)

CREATE Form AS QFORM
    Caption = "Form1"
    Width = 320
    Height = 240
    Center
    CREATE Label1 AS QLABEL
        Caption = "000"
        Left = 74
        Top = 124
        Transparent = 1
    END CREATE
    CREATE Button1 AS QBUTTON
        Caption = "Lire"
        Left = 183
        Top = 51
        OnClick = Button1Click
    END CREATE
END CREATE

'Insert your initialization code here

Form.ShowModal

'--------- Subroutines ---------

SUB Button1Click (Sender AS QBUTTON)
    DIM File1 AS QFILESTREAM
    DIM B AS BYTE, I AS INTEGER

dim oct1 as byte, oct2 as byte
        File1.Open("D:\DoctsIslay\RapidQ2\progs\Phase_Lune.exe", fmOpenRead)
        file1.read(b)
        label1.caption = str$(b)
        file1.close
END SUB

et là, ça fonctionne ?
garogorille

Hors ligne

 

#6 26-07-2010 06:41:49

mine2rien
Moderateur
Date d'inscription: 24-03-2004
Messages: 497

Re: Fichier binaire (?)

re.
En fait mon code console fonctionnait quand même :-( il me sortais une série de chiffre(avais oublié str$(s$) pour affichage)
Et ton code ne me sort que les 2 premier chiffre...
bref, en fait je ne dois pas être sur la bonne piste du tout...

le fichier .dat en ma possession est un fichier de sauvegarde d'une application. J'ai testé le fichier avec gtw,et il s'agit d'un fichier binaire.
Je cherchais à rendre lisible ce fichier pour 2 raisons:
Comprendre comment sont foutu ces fichiers et comment il est possible de les manipuler..

Tout ça en fait, parce que depuis mes débuts en programmation, je n'ai jamais compris comment certains arrivaient à traiter ces fichiers dans les jeux vidéos dits "modernes"... Editeurs de sauvegardes, "trainer" comme ils disent etc...

ma curiosité devra vraisemblablement patienter encore un peu ;-)
Mais si tu as des pistes...suis preneur!!
Bonne journée!


http://www.rapidq-france.org/forums/img/members/3/userbar1.jpg
http://www.rapidq-france.org/forums/img/members/3/userbar2.jpg

Hors ligne

 

#7 27-07-2010 08:56:52

garogorille68
Membre
Lieu: Mulhouse
Date d'inscription: 14-08-2009
Messages: 54

Re: Fichier binaire (?)

Salut mine2rien,
ouais, mon programme était un début de piste.
Pour lire tout le fichier , il faut boucler, jusqu'à EOF (fin du fichier).
Mais si ta question est d'aller regarder dans un fichier binaire, il y a des utilitaires, comme CH-Hexact
http://www.crteknologies.fr.st/
L'affichage se fait en hexa (plus pratique que le décimal), et en ASCII.
Il est utilisable dans le menu contextuel de l'explorer. Je m'en sers régulièrement.
Si tu as des questions, don't hesitate.
@+
garogorille

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB
Traduction par FluxBB.fr