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

Macros et VBA Excel Discussion :

Ouvrir un fichier binaire provenant de Quick Basic


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Ingénieur d'études
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut Ouvrir un fichier binaire provenant de Quick Basic
    Bonjour,

    J'ai besoin de pouvoir lire les valeurs d'une matrice exportée en binaire sous QuickBasic 4.5 (une variante du BASIC).

    La matrice C(i,j) (2x626) avait été exportée dans le fichier MATX de la manière suivante :

    OPEN chemindufichier FOR BINARY AS #1 ',1400,8 1400 enregistrements de 8 octets
    compteur = 1
    FOR i = 1 TO 2
    FOR j = 1 TO 700
    PUT #1, compteur, C(i, j)
    compteur = compteur + 4 '1 single = 4 octets
    NEXT j
    NEXT i
    CLOSE #1

    Je n'ai aucune idée de comment lire ce fichier, mais j'ai besoin de connaître les valeurs contenues dans cette matrice. Je pense que ça devrait être faisable avec VB et VBA, mais je n'ai aucune connaissance dans ce domaine...

    Voici le fichier : j'ai ajouté l'extension en .xlsx pour qu'il soit déposable sur le forum, mais il n'avait pas d'extension.
    MATX.xlsx

    Pourriez-vous m'aider ?

    Merci d'avance

    morvandelle

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 244
    Par défaut
    Hello,
    voici une possibilité pour lire le fichier binaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub LireFicBin()
    Dim byteArr() As Byte
    Dim fileInt As Integer: fileInt = FreeFile
    Open "D:\temp\Matx.bin" For Binary Access Read As #fileInt
    ReDim byteArr(0 To LOF(fileInt) - 1)
    Get #fileInt, , byteArr
    Close #fileInt
    End Sub
    [EDIT] A essayer (pas sûr que cela donne le bon résultat ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub LireMatrice()
    Dim i, j, x As Integer
    Dim Matrice(1 To 2, 1 To 626) As Single
    Dim byteArr() As Single
    Dim fileInt As Integer: fileInt = FreeFile
    Open "D:\temp\Matx.bin" For Binary Access Read As #fileInt
    ReDim byteArr(0 To (LOF(fileInt) - 1) / 4)
    Get #fileInt, , byteArr
    x = 0
    Close #fileInt
    For i = 1 To 2
      For j = 1 To 266
        Matrice(i, j) = byteArr(x)
        x = x + 1
      Next j
    Next i
    End Sub
    Ami calmant, J.P

  3. #3
    Nouveau candidat au Club
    Femme Profil pro
    Ingénieur d'études
    Inscrit en
    Janvier 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Janvier 2023
    Messages : 2
    Par défaut
    Super, merci ! J'ai réussi à récupérer les valeurs stockées


    Citation Envoyé par jurassic pork Voir le message
    Hello,
    voici une possibilité pour lire le fichier binaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub LireFicBin()
    Dim byteArr() As Byte
    Dim fileInt As Integer: fileInt = FreeFile
    Open "D:\temp\Matx.bin" For Binary Access Read As #fileInt
    ReDim byteArr(0 To LOF(fileInt) - 1)
    Get #fileInt, , byteArr
    Close #fileInt
    End Sub
    [EDIT] A essayer (pas sûr que cela donne le bon résultat ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub LireMatrice()
    Dim i, j, x As Integer
    Dim Matrice(1 To 2, 1 To 626) As Single
    Dim byteArr() As Single
    Dim fileInt As Integer: fileInt = FreeFile
    Open "D:\temp\Matx.bin" For Binary Access Read As #fileInt
    ReDim byteArr(0 To (LOF(fileInt) - 1) / 4)
    Get #fileInt, , byteArr
    x = 0
    Close #fileInt
    For i = 1 To 2
      For j = 1 To 266
        Matrice(i, j) = byteArr(x)
        x = x + 1
      Next j
    Next i
    End Sub
    Ami calmant, J.P

Discussions similaires

  1. [XL-2016] Ouvrir un fichier Excel provenant du même dossier
    Par Simon5713 dans le forum Excel
    Réponses: 2
    Dernier message: 03/12/2019, 12h34
  2. [Débutant] Ouvrir des fichiers binaires
    Par Moulahi dans le forum MATLAB
    Réponses: 3
    Dernier message: 02/04/2015, 21h40
  3. Ouvrir un fichier en binaire
    Par Slade991 dans le forum Général Python
    Réponses: 18
    Dernier message: 25/03/2007, 06h05
  4. [VBA-OOo] Comment ouvrir un fichier Excel en basic ?
    Par asoka13 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2006, 17h19
  5. Réponses: 2
    Dernier message: 26/04/2004, 13h55

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