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 :

Représentation des variables en mémoire


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut Représentation des variables en mémoire
    Bonjour tout le monde.

    Je vais reposer la même question que dans mon post précédent, mais de façon beaucoup plus explicite :

    Qui peut me donner un lien vers un document décrivant la représentation des données de VB6 en mémoire SVP.

    Pour expliquer encore mieux ce que je cherche, voila : j'utilise une API de WINMM qui manipule des tableaux d'octets et je coince actuellement pour traiter ces octets : j'étais parti sur la définition
    Code vb6 : Sélectionner tout - Visualiser dans une fenêtre à part
    dim tableau as byte(dimension)
    , et j'ai mis un moment à comprendre que ça ne marchait pas par ce que VB6 crée en réalité un tableau de Long dont il n'utilise que l'octet de poids faible (tout du moins, c'est comme ça que j'interprète ce que je vois).

    Merci d'avance.

    AMIcalement.

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    Merci Omen999 : cela semble répondre à ma question... mais je ne suis pas sur de tout comprendre, et/ou ma compétence en VB6 est insuffisante...

    Puis-je demander de l'aide un peu plus explicite - et française - sur mon problème précis ? L'API que j'utilise est WaveInAddBuffer, à qui l'on transmet le pointeur et la taille d'une zone mémoire pour capturer le son du microphone. Mais je tiens absolument à pouvoir traiter les échantillons le plus près possible du temps réel. Je sais "à peu près" le faire, mais cet "à peu près" vient de l'arrangement des octets dans la mémoire : j'avais commencé par définir mon buffer comme un tableau de byte, mais j'ai cru comprendre que VB6 crée un tableau de Long, dont il n'utilise que l'octet de poids faible (cela n'est pas mentionné dans le document : est-ce que je me trompe ?) J'ai essayé de définir mon buffer comme un tableau de long (et donc de longueur divisée par 4) mais (pour le moment) je n'arrive pas à récupérer les octets un par un.

    Ne venez pas me dire d'utiliser "copymemory" ou des trucs du genre : je veux faire mes traitement d'octets sans attendre que le buffer soit plein.

    Si quelque lecteur comprend ce que j'explique, et a déjà résolu le même genre de problème, ses lumières seront bienvenues.

    Et encore merci à Omen999 pour sa réponse

    AMIcalement.

  4. #4
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    J'AI TROUVEEEEEEEEEEE !!!!!!!!!!!!!!!!!!!!!!

    Excusez-moi de crier, mais j'ai tellement galéré. Et c'était tellement bête !

    Pour pouvoir échantillonner et représenter les sonogrammes en temps réel, je fais tourner l'échantillonneur sur 4 buffers, que j'ai déclarés comme
    Code vb6 : Sélectionner tout - Visualiser dans une fenêtre à part
    Public InData(3,2756) As Long
    puisque j'échantillonne à 11025 hertz et que je veux que chaque buffer représente une seconde de son. Vous me suivez bien : j'ai abandonné les byte, et 2756 est le quart de 11024.

    Eh bien c'était ça l'erreur ! Il fallait déclarer
    Code vb6 : Sélectionner tout - Visualiser dans une fenêtre à part
    Public InData(2756, 3) As Long
    En VB6, l'indice qui varie le plus vite est le premier !!!

    Merci de votre attention.

    AMIcalement.

  5. #5
    Membre habitué
    Inscrit en
    Mai 2009
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 512
    Points : 131
    Points
    131
    Par défaut
    J'ajoute un dernier point : je suis revenu à la déclaration de tableaux de byte, et VB6 ne réserve bel et bien qu'un seul octet par byte.

    J'aurais pu faire la vérification plus tôt, mais bon, c'est fait, c'est fait.

    AMIcalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Représentation des tableaux en mémoire
    Par Spirale21 dans le forum Débuter
    Réponses: 2
    Dernier message: 27/11/2019, 10h04
  2. Représenter des variables dans un diagramme ?
    Par gatus dans le forum Formules
    Réponses: 2
    Dernier message: 24/09/2010, 15h01
  3. gestion des variables en mémoire
    Par tubaas dans le forum MATLAB
    Réponses: 2
    Dernier message: 15/01/2010, 11h13
  4. Structure des variables en mémoire
    Par Co_Co dans le forum C++
    Réponses: 7
    Dernier message: 30/05/2007, 18h55
  5. Gestion des variables - mémoire ?
    Par RIVOLLET dans le forum Langage
    Réponses: 4
    Dernier message: 26/10/2002, 12h44

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