Forums d'aide et d'échanges autour de Rapidq
Vous n'êtes pas identifié.
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:
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...


Hors ligne
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
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....


Hors ligne
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
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
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!


Hors ligne
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