IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Lecture fichier binaire


Sujet :

VB 6 et antérieur

  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut Lecture fichier binaire
    Bonjour à tous,

    J'ai un fichier, créé par qBasic dans le temps, que je veux lire avec VB. Le fichier est binaire et je ne connais pas les types de variables pour le lire, j'aimerais donc au moins voir tout le contenu et pouvoir piger à l'intérieur du dit fichier pour des données.

    Que j'ouvre le fichier avec wordpad ou un lecteur hexadecimal aucune données ne peut être sortit de là, tout est probablement au mauvais format. Il y a une façon pour voir son contenu? Ou il me faut absolument décortiquer le code qBasic pour retrouver les formes de variables?

    Merci beaucoup.

    NB. En qBasic le tout est "open as random", fonction que je tente d'utiliser en VB mais qui me sort la même "junk" qu'en hexadecimal.

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour,

    J'ai déjà eu le même problème il y a quelques temps.
    Même si on connait les variables,la traduction en VB6 ne correspond pas au QB

    string = string (bien sur)

    integer = integer (sur 2 octets:pas de problème)

    mais single( 4 octets) ne correspond pas à single en VB6 qui est pourtant aussi sur 4 octets.

    et double précision (8 octets ) ne correspond pas à double précision en VB6 pourtant aussi sur 8 octets..

    Le mieux (c'est ce que j'ai du faire) c'est de lire le fichier binaire (en QB) et de l'écrire dans un fichier texte (en QB) ,puis de relire le fichier texte en VB6 et de le réécrire en binaire en VB6

    Attention pour VB6, ouvrir un fichier binaire, c'est l'instruction

    Open Nomfichier For Binary As numerodebuffer

    A+

  3. #3
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    Merci de la réponse !

    Mais je ne sais pas comment programmer en QB, je peux apprendre sans trop de problèmes mais... il me faudrait au moins savoir comment démarrer en QB sur Windows XP par exemple.

    Tu peux me donner un coup de main la dessus?

  4. #4
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Tu dis que ton fichier est binaire... S'agit-il du .exe ? du .bas ? ou autre ?

    Dans le cas d'un exécutable (.exe), je ne vois pas ce qu'on pourrait y faire...

    Dans le cas d'un fichier source (.bas) on devrait normalement le lire dans un éditeur de texte. Mon chum (Trad.: époux, ami de coeur, amant... peut aussi être tout simplement ami... chum est un mot général, générique et plutôt vague...) - Mon chum, donc, lui, programme en QuickBasic (QB 45) et en PowerBasic. Il a déja traduit un programme Basic (spaghettis numérotés) en QB45. Il a du tout réécrire... La Job ! J'ai bien peur que tu doives relever tes manches, quoique plusieurs fonctions et procédures devraient être récupérées sans trop de problèmes.

    Pour peu que tu aies le fichier source sous la main...

    Note : J'ai mis un lien sur PowerBasic à titre informatif seulement. Je tiens à rassurer tout l'monde : je n'ai pas d'actions de la compagnie. Il s'agit ici juste d'un lien pour les curieux qui ne connaissent pas encore. Et non, je n'ai pas, non plus, PowerBasic installé sur ma machine. Je ne peux donc pas vous donner mon avis sur cet environnement de programmation.

  5. #5
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Les données numériques en quick basic et basic précédents étaient stockée au format MBF. Depuis visual basic , le format est passé à IEEE.
    Une dll de convertion est fournie par Microsoft http://support.microsoft.com/kb/140520
    Maintenant ce qu'il te manque , c'est la structure des enregistrements contenus dans ton fichier. C'est en lisant le code quickbasic que tu pourras le trouver, sinon vraiement grosse galère.

  6. #6
    Membre émérite
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Par défaut
    Bonjour Delbeke,

    Merci pour tes précisions, exactement c'est dans les données numériques que ça coïnce entre QB et VB6 ( sauf integer sur 2 octets un de poids faible et un de poids fort )
    De Delbeke
    Maintenant ce qu'il te manque , c'est la structure des enregistrements contenus dans ton fichier. C'est en lisant le code quickbasic que tu pourras le trouver, sinon vraiement grosse galère.
    Hé oui sans connaître la longueur des enregistrements et les fields (champ)
    avec pour chacun leur nombre d'octets et leur valeur (donc la structure )
    Très ,très difficile...

  7. #7
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    Je ne peux pas juste le lire au brut? Parce que là faut je décortique et je n'ai absolument aucune idée de la forme de la structure des données... il y a un moyen en VB ou peu importe le language que je pourrais utiliser?

    Le code de base en qBasic est décortiqué pour certaines sections seulement, je n'ai pas accès aux types de variables. Vous pouvez me donner un coup de main?

    Merci beaucoup!

  8. #8
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    De mémoire, le découpage se faisait avec une instruction field #Numero,..
    après le open du fichier.
    L'affectation des variables se faisait par LSet VariableBuffer= Variable ou parfois un RSet à la place du LSet.
    Les variables numeriques Integer se faisaient par Lset VariableBuffer=Mki(Variable)
    Les variables numeriques Single se faisaient par Lset VariableBuffer=Mks(Variable)
    Les variables numeriques Doublese faisaient par Lset VariableBuffer=Mkd(Variable)

    Si tu a accès au source du l'ancien programme, çà devrait t'aider à retrouver la structure.

  9. #9
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut
    J'ai bien une idée farfelu que je n'ose pas proposer avant de pouvoir la vérifier.
    Peux tu mettre ton fichier créé par qBasic en pièce jointe ?

    Motif de l'edit et pour ne pas faire remonter la discussion inutilement
    Citation Envoyé par Bomba Voir le message
    Le fichier est sensiblement ... privé. Je peux te l'envoyer par courrier?
    Je comprend, rien ne dit que la façon dont je voulais essayer de solutionner aurai réussi, par contre si quelqu'un a ce type de fichier (non confidentiel) je suis preneur.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    Le fichier est sensiblement ... privé. Je peux te l'envoyer par courrier?

  11. #11
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    Fichier envoyé par email (celui mentionné dans le profil).

    Merci de me donner un coup de main

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 73
    Par défaut
    UP!

    Je n'ai pas eu de nouvelles, j'aimerais simplement mentionner que dans le besoin je travail avec Just Basic pour tenter de sortir quelque chose.

    Est-ce qu'il y a un moyen de sortir byte to byte les données, les transférer en CSV ou au moins les rendre visible?

    Merci beaucoup à tous.

Discussions similaires

  1. Lecture fichier binaire et inversion d'octets
    Par zoro_le_renard dans le forum Fortran
    Réponses: 8
    Dernier message: 17/07/2007, 20h35
  2. Lecture fichier binaire
    Par djidji dans le forum Langage
    Réponses: 1
    Dernier message: 09/11/2006, 11h58
  3. Réponses: 5
    Dernier message: 02/10/2006, 22h54
  4. Lecture fichier binaire
    Par kek_net dans le forum Langage
    Réponses: 5
    Dernier message: 07/08/2006, 19h37
  5. Lecture fichier binaire
    Par gabule dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 30/05/2006, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo