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 :

[VB6] Limitation des variables à 64 Ko


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de daladim
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 153
    Par défaut [VB6] Limitation des variables à 64 Ko
    Salut à tous, (désolé, ma question est un peu longue...)

    je suis en train de programmer un explorateur de fichiers alternatif (un peu comme celui de Windows, mais avec, entre autres, des onglets)

    J'ai donc besoin d'une variable listant tous les dossiers, fichiers, etc. affichés par la fenêtre. Cette variable s'appelle objExpl. Elle est déclarée comme ca :

    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
    18
    'Dans un module :
    Public objExpl(255) As Explorateur
    
    Public Type Explorateur
        Path As String
        Titre As String
        
        'Panneau de gauche, listant l'arborescence des dossiers
        ContenuDossiers(1024) As String
        CoordDossiers(1024) As Long     'Coordonnées des dossiers, pour la sélection
        dossierSelectionne As Long          'Dossier sélectionné
        
        nomFichiers(4096) As String
        extensionFichiers(4096) As String
        tailleFichiers(4096) As Single
       
        historique(255) As String
    End Type
    J'ai simplifié un peu, en fait, le type Explorateur contient encore quelques autres variables (Long ou Single), mais ca ne change rien au problème.

    Le but de objExpl est de pouvoir simplement gérer les onglets. Par exemple, je peux avoir objExpl(OngletEnCours).contenuDossiers(0), c'est le premier dossier affiché dans l'onglet en cours.

    Mon problème est que quand je lance ce programme, VB me dit "Erreur de compilation : une donnée fixe ou statique ne peut dépasser 64 Ko" , et il sélectionne la ligne d'où provient l'erreur : il s'agit d'un tableau du type Explorateur.

    Je comprend donc que mon type Explorateur est trop gros. Cependant, j'ai vraiment besoin de tous ces tableaux. Comment faire pour contourner l'erreur de compilation ?
    (ou alors comment alléger le type Explorateur, à mon avis il y a beaucoup de subtilités de VB que je ne connais pas et qui pourraient m'être bien utiles)

    Merci beaucoup

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je n'ai pas de solution mais j'ai lu ton TPE. Ce n'est pas le sujet mais tu ne parles pas de la future installation d'un centre de recherche international en France. Tu as des renseignements là-dessus

    Merci

    A+

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Pourquoi, dans ce cas, ne pas faire ton outil en te servant des contrôles Drivelist, Dirlist et Filelist conjugués avec les onglets que tu veux et les labels que tu veux ...
    Il me semble que ce serait beaucoup plus simple, pour le même résultat ...

  4. #4
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Tu ne peux malheureusement pas passer par un Type. Un type n'est pas un pointeur sur un objet. La taille de la variable est donc initimement liée aux types qui l'a compose.

    Voici la taille de ton type :

    Path As String '4 octets
    Titre As String '4 octets
    ContenuDossiers(1024) '1025 * 4 Octets
    CoordDossiers(1024) As Long '1025 * 4 Octets
    dossierSelectionne As Long '4 octets
    nomFichiers(4096) As String '4097 * 4 Octets
    extensionFichiers(4096) As String '4097 * 4 Octets
    tailleFichiers(4096) As Single '4097 * 4 Octets
    historique(255) As String '256 * 4 Octets

    Une solution consisterait à passer non par un type mais un module de classe. Ainsi tu pointerais sur une adresse qui pointerait sur d'autres adresses et tu éviteras ce dépassement.

  5. #5
    Membre confirmé Avatar de daladim
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 153
    Par défaut
    Salut tout le monde, merci pour vos réponses.

    jmfmarques, merci pour ta réponse, mais je ne pense pas qu'elle me convienne : j'aurais besoin d'avoir la liste des fichiers, de leur taille... pour pouvoir les classer par type, par taille, par date, etc...
    Catbull, merci aussi. Je ne connais pas les modules de classe, mais je vais apprendre et j'essayerai ce que tu me proposes.

    Merci beaucoup
    (Je ne mets pas le tag résolu, si jamais quelqu'un a d'autres solutions)

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    jmfmarques, merci pour ta réponse, mais je ne pense pas qu'elle me convienne : j'aurais besoin d'avoir la liste des fichiers, de leur taille... pour pouvoir les classer par type, par taille, par date, etc...
    OUI ? Et alors ?
    Il s'agit là d'un aspect que tu peux gérer, ma foi... A condition que tu saches faire tout le reste (extraire par API et gérer). Et je pense que tu sais faire tout celà, sinon tu ne te lancerais pas dans une telle entreprise ! Le contraire voudrait dire que tu attends que l'on fasse tout, pas à pas,....

Discussions similaires

  1. Valeurs limite des variables float et double
    Par Skagaz dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 16/04/2010, 11h24
  2. [VB6][fichier texte]limite des 32 ko
    Par hawk14 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/02/2006, 23h45
  3. Compteur XSL...Portée des variables limitée
    Par lanfeustdetroy dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 03/06/2005, 14h12
  4. Réponses: 8
    Dernier message: 17/02/2005, 09h05
  5. [VB6] [Fichier] Enregistrer des variables de structure
    Par de.bo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2002, 11h09

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