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

C++Builder Discussion :

nombre de lignes dans ListBox


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut nombre de lignes dans ListBox
    bonjour,

    Est ce que le nombre de lignes est limité dans le ListBox, car j'ai chargé un fichier de 20000 lignes mais le compilateur me signale une erreur (out of bounds).
    une idée pour résoudre ça!!!


    remarque:
    en créant une ListBox dynamiquement sa marche très bien,
    mais en positionnant une sur la Form, sa génère cette erreur.


    merci d'avance.

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    En mode conception, il me semble que la propriété Items de la ListBox est limitée à 65535 caractères.
    Par contre il n'y a a ma connaissance pas de limite en execution.
    Une solution est donc de stocker dans un fichier texte tes 20000 lignes, et de faire en début de programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1->Items->LoadFromFile( "D:\\NomFichier.txt" ) ;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    Citation Envoyé par sat83 Voir le message
    En mode conception, il me semble que la propriété Items de la ListBox est limitée à 65535 caractères.
    Par contre il n'y a a ma connaissance pas de limite en execution.
    Une solution est donc de stocker dans un fichier texte tes 20000 lignes, et de faire en début de programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1->Items->LoadFromFile( "D:\\NomFichier.txt" ) ;

    salut Sat83,

    oui justement c'est ce que j'ai fais, mais j'ai toujours cette erreur out of bounds.
    mais ce que je comprend pas c'est pourquoi en créant la listbox dynamiquement il fait le chargement, mais en utilisant la palette des composant (composant Listbox) il coince

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Je viens de tester avec un fichier assez conséquent (plus de 4 millions de lignes), et de mon coté il n'y a pas de problèmes (même si c'est très long).

    Combien y'a t'il de caractères dans ton fichier?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    salut,
    voici le fichier.
    s'il te plait si tu peux le tester chez toi .
    merci d'avance.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Ca fonctionne parfaitement chez moi :

    - Je crée un nouveau projet
    - Je place une ListBox et un Button sur ma fiche

    dans l'évenement On Click de mon Button je place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
      ListBox1->Items->LoadFromFile( "C:\\GENEID_GENESYMBOL.txt" ) ;
      ShowMessage( IntToStr(ListBox1->Items->Count) ) ;
    }
    Le programme met quelques secondes pour charger le fichier, puis le message indique bien 17594 ce qui confirme que la totalité du fichier a été chargé...

    Est tu sûr que l'exception se produit sur la ligne LoadFromFile et pas ailleurs?
    Ton problème vient probablement d'ailleurs, tu dois tenter d'accéder à une ligne qui n'existe pas dans ta Listbox, ce provoque une exception "INDEX OUT OF BOUND"

  7. #7
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Citation Envoyé par dz_robotix Voir le message
    Est ce que le nombre de lignes est limité dans le ListBox, car j'ai chargé un fichier de 20000 lignes mais le compilateur me signale une erreur (out of bounds).
    une idée pour résoudre ça!!!
    T'es pas sous Windows 98, par hasard ?

    Windows 95 and Windows 98: The wParam parameter is limited to 16-bit values. This means list boxes cannot contain more than 32,767 items. Although the number of items is restricted, the total size in bytes of the items in a list box is limited only by available memory.
    Les objets Builder étant basés sur les composants Windows, les limitations des uns s'appliquent aux autres.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    Citation Envoyé par sat83 Voir le message
    Ca fonctionne parfaitement chez moi :

    - Je crée un nouveau projet
    - Je place une ListBox et un Button sur ma fiche

    dans l'évenement On Click de mon Button je place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::BitBtn1Click(TObject *Sender)
    {
      ListBox1->Items->LoadFromFile( "C:\\GENEID_GENESYMBOL.txt" ) ;
      ShowMessage( IntToStr(ListBox1->Items->Count) ) ;
    }
    Le programme met quelques secondes pour charger le fichier, puis le message indique bien 17594 ce qui confirme que la totalité du fichier a été chargé...

    Est tu sûr que l'exception se produit sur la ligne LoadFromFile et pas ailleurs?
    Ton problème vient probablement d'ailleurs, tu dois tenter d'accéder à une ligne qui n'existe pas dans ta Listbox, ce provoque une exception "INDEX OUT OF BOUND"

    merci à vous tous,
    en fait l'erreur était si simple que...
    j'avais cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1->Items->LoadFromFile( "C:\\GENEID_GENESYMBOL.txt" ) ;
    puis j'afficher le nombre de lignes mais d'une autre ListBox.

    merci encore

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

Discussions similaires

  1. nombre de ligne dans une listbox
    Par jffaber dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/08/2008, 09h16
  2. [] Nombre de lignes dans un textbox
    Par juanelcalor dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/07/2005, 11h54
  3. Réponses: 8
    Dernier message: 20/06/2005, 15h10
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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