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.NET Discussion :

Grand tableau et impossible de lancer sous Visual Studio


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut Grand tableau et impossible de lancer sous Visual Studio
    Bonjour,

    J'utilise un grand tableau (je sais , ce n'est pas terrible), de ce type: couple(50,50,50,50,50) et je ne peux Démarrer le débogage puisqu'il m'indique une erreur :
    "L'exception System.OutOfMemoryException n'a pas été gérée"

    Je peux lancer mon application avec le fichier compilé ".exe" puisque que j'ai mis dans le fichier WindowsApplication1.vshost.exe.config
    <runtime>
    <gcAllowVeryLargeObjects enabled="true" />
    </runtime>
    Comment puis-je faire pour faire fonctionner en mode débogage ?

    Merci de vos aides à tous.

    Cordialement.


  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Juste une suggestion pour tes tests, travaille sur un tableau Couple(5, 5, 5, 5, 5).
    Par ailleurs, un tableau à 5 dimensions, chacune de 51 positions (indices de 0 à 50), cela fait 345025251 place mémoire pour des objets d'une certaine taille (je pourrais te faire le calcul exact si je voyais la déclaration complète Dim Couple(5, 5, 5, 5, 5) As Quel_Type ?.

    Si tu gères une si grande taille de peur de ne pas avoir assez de place, tu pourrais agrandir ton tableau dynamiquement au fur et à mesure des entrées.

    Enfin, si tu nous expliquais ce que tu souhaites gérer avec un tel tableau, peut-être quelqu'un te donnera-t-il l'idée d'un organisation des données moins gourmande en espace mémoire ...

    J'espère que ceci t'aidera,


  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut réponse
    Re

    Le tableau couple(50,50,50,50,50) permet de mémoriser des numéros de 1 à 50 dans chaque dimension.

    exemple: le tableau peut contenir 5 éléments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ex:(12, 5,  45, 50, 19)
      de 1   1   1   1   1
         |   |   |   |   |
      à 50  50  50  50  50
    Suivant qu'il y a 5, 4, 3 ou 2 éléments, chaque suite cumule le nombre de fois que cette suite est apparue.
    exemple:

    (12, 5, 45, 50, 19) = 10 fois
    (1,20,42,8,25) = 20 fois
    (3,28,10) = 15 fois
    (12,42) = 30 fois

    etc.

    Voilà en gros ce que je fais avec ce tableau.

    Merci.

    Cordialement.


  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    @Didpoy

    Donc les lignes vides et celles de un seul numéros ne servent pas ton programme. Elles peuvent être supprimées ?
    Si on peut permuter les nombres dans chaque ligne pour les ordonner, il va y avoir des doublons (7, 26 et 26, 7 vont devenir 2 fois 7, 26). On peut ne garder qu'une seule ligne des 2 ? Le traitement préalable du fichier Suite serait
    Serait-ce gênant que tous les numéros soient présentés sur 2 chiffres, y compris à l'affichage ? Le quadruple (1,49,8,44) deviendrait (01 08 44 49).
    Le traitement préalable du fichier Suite serait :
    suppression des lignes vides et des lignes avec un seul nombre
    formatage sur 2 chiffres de tous les numéros, avec 00 pour les inexistants
    ordonnancement par ordre croissant de tous les numéros sur chaque ligne
    ordonnancement par ordre croissant de toutes les lignes

    Si ton fichier Suite ne contenait que les 5 premières lignes, elles deviendraient (après suppression de la 1ère ligne que ne contient que des 0) :
    00 00 00 01 23
    00 00 00 04 24
    00 00 00 06 23
    00 00 00 14 28
    00 00 06 10 21

    Une dernière (pour l'instant) :
    Le fichier Suite contient des couples, des triples, des quadruples, ...
    La recherche d'un couple s'effectue-t-elle seulement sur les couples du fichier ou aussi sur les triples, quadruples, et quintuples ?
    De même on peut chercher les triples dans les triples, dans quadruples et dans les quintuple, de même on peut chercher les quadruples dans les quadruples et dans les quintuples. Exact ?

    @+

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    re

    Donc les lignes vides et celles de un seul numéros ne servent pas ton programme. Elles peuvent être supprimées ?
    Le nombre de ligne du fichier et idem à celui des prévisions ce qui permet facilement une concordance entre les 2.
    Chaque ligne de P4.csv correspondant à chaque ligne du résultat du test.
    P4.zip

    Si ton fichier Suite ne contenait que les 5 premières lignes, elles deviendraient (après suppression de la 1ère ligne que ne contient que des 0) :
    L'idée semble intéressante, pourquoi pas, mais cela m'oblige à modifier mes autres fichiers comme P4.csv pour le ligne zéro. Mais pas impossible à faire.

    Le fichier Suite contient des couples, des triples, des quadruples, ...
    Pour tous les cas.

    @+

  6. #6
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Si tes numéros n’excèdent pas la valeur 255, tu peux déclarer ton tableau comme ceci : Dim Couple(50, 50, 50, 50, 50) As Byte. Cela te fera quand même plus de 345 Mo. en mémoire. Si ton tableau est déclaré Dim Couple(50, 50, 50, 50, 50) As Integer, il a besoin de plus 1.5 Go d'espace mémoire.

    Mais quel que soit le type des tes entiers, il est prudent de faire les tests avec un tableau de moindre dimension.

    J'espère que quelqu'un pourra te donner une meilleure piste ...

    Bonne soirée,


  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut réponse
    Re

    Ok, je vais essayer avec Bytes et je "reviendra" pour donner les résultats.

    Merci.

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Suite ...

    J'y pense, ton tableau ne doit pas faire cette taille !

    Tu as seulement besoin d'un tableau de 50 lignes de 5 colonnes. C'est pas pareil !

    Dim Couple(50, 5) As Byte ' 255 octets en mémoire.
    ou
    Dim Couple(50, 5) As Integer ' ± 1 Ko en mémoire.

    Exemple (en utilisant pas les indices 0) :

    Ligne 1 : 12, 5, 45, 50, 19 ==> dans le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Couple(1, 1) = 12
    Couple(1, 2) = 5
    Couple(1, 3) = 45
    Couple(1, 4) = 50
    Couple(1, 5) = 19
    Ouf! On respire mieux ...

  9. #9
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    J'ai bien chargé ton projet via le mail privé.

    Mais dans un premier temps, je ne souhaite pas regarder ton code, je préfère m'approprier une bonne compréhension du travail, d'où aussi toutes mes questions.
    Je souhaite tester quelques outils que je te demanderais de tester pour confirmer qu'il donne des résultats conforment à ceux de ton programme.

    Si je comprends bien chaque ligne de Suite correspond à une ligne de P4, vrai ?

    Si c'est le cas, je ne peux pas ordonner le fichier Suite car il n'y aurait plus correspondance en Suite et P4.

    Tu n'as pas répondu à ma question : un couple cherché l'est-il aussi à l'intérieur des triples, quadruples et quintuples du fichier Suite ?

    Par ailleurs, j'ai bien compris qu'on ne peut supprimer les doublons, les statistiques ne seraient plus correctes

    Le fichier P4 correspond réellement aux tirages successifs ? Pourquoi les numéros d'un tirage ne sont-ils pas encodés de manière ordonnée, du plus petit au plus grand

    @+

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    Si je comprends bien chaque ligne de Suite correspond à une ligne de P4, vrai ?
    Oui, c'est cela.
    Numéros euromillions par rapport à ma prévision.

    Tu n'as pas répondu à ma question : un couple cherché l'est-il aussi à l'intérieur des triples, quadruples et quintuples du fichier Suite ?
    Non

    Le fichier P4 correspond réellement aux tirages successifs ? Pourquoi les numéros d'un tirage ne sont-ils pas encodés de manière ordonnée, du plus petit au plus grand
    Je ne voyait pas l'intérêt de les classer. Je teste chaque boule sortie pour voir elle existe dans la ligne Prévision.

  11. #11
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Nos derniers messages se sont croisés ...

    Tu as seulement besoin d'un tableau de 50 lignes de 5 colonnes : Dim Couple(50, 5) As Byte ' 255 octets en mémoire.


  12. #12
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    Re

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Couple(50, 5) As Byte ' 255 octets en mémoire.
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Couple(50, 5) As Integer ' ± 1 Ko en mémoire.
    Oui, mais pour les triples, quadruples, quintuples couples !


  13. #13
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 585
    Par défaut
    Pour le SQL, désolé je pensais que l'origine était un fichier csv!

  14. #14
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    OK, je vais mettre tout ça à mijoter et j'en retire de quoi goûter dès que possible

    @ tantôt (ou demain ?)


  15. #15
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Envoie-moi un exemple plus complet.
    Et dis-moi, pourrais-tu (s'il le fallait) écrire tous tes nombres sur une feuille Excel ?

  16. #16
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    Salut,

    Voici un exemple .csv

    Suite.zip

    Ce que je cherche à faire:
    Je prends le 4 et 24 et je cherche combien de fois il apparaît dans le fichier donc : couple(4,24,0,0,0)
    idem pour 23,1
    idem pour 28,14
    idem pour 21,6,10 : couple(21,6,10,0,0)

    et plus loin:
    idem pour 42,35,9,3,39 : couple(42,35,9,3,39)
    et ainsi de suite...

    Merci.


  17. #17
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    @Thumb down
    Non, c'est vrai le fichier est bien un csv et il est effectivement possible d'utiliser SQL.

  18. #18
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    ok

  19. #19
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    J'ai vu ta feuille XLS : il s'agit d'un tableau de 1287 lignes de 5 colonnes. Pour déclarer ce tableau en VB, il faut écrire Dim Couple(1287, 5) As Byte.

    Une remarque, je vois que certaines cellules contiennent des points. Le point n'est pas une valeur de type Byte, est-il possible de le remplacer par 0 ? Si non, c'est un tableau de chaines qu'il faut utiliser ... mais c'est un détail qui peut être traité plus tard.

    Cette feuille XLS me permet de te démontrer que tu n'as besoin d'un tableau à 5 dimensions, mais seulement d'un tableau à 2 dimensions (ce qu'est une feuille XLS). Avec 3 dimensions en XLS, tu gères un WorkBook de plusieurs feuilles. Avec 4 dimensions en XLS, tu gères plusieurs WorkBooks de plusieurs feuilles ...

    Tu parlais hier de triples, quadruples, quintuples couples. De quoi s'agit-il ? Peux-tu donner un exemple ?

    Et puis, que fais-tu des résultats de "Je prends le 4 et 24 et je cherche combien de fois il apparaît dans le fichier" ?

    A tantôt

  20. #20
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 147
    Par défaut re
    re

    est-il possible de le remplacer par 0
    oui, c'est possible


    Tu parlais hier de triples, quadruples, quintuples couples. De quoi s'agit-il ? Peux-tu donner un exemple ?
    Lorsqu'il y a soit 2 numéro, trois numéros, etc... jusqu'à 5 numéros d'une ligne à retrouver plusieurs fois dans la feuille

    Et puis, que fais-tu des résultats de "Je prends le 4 et 24 et je cherche combien de fois il apparaît dans le fichier" ?
    Je fais un cumul dans le tableau du nombre de fois que ce couple, par exemple, apparaît dans ma feuille csv.
    Exemple:
    Le couple (4,24) est apparu 10 fois dans la feuille excel
    le quintuple (29,35,40,41,9) est apparu 41 fois dans la feuille excel

    il faut écrire Dim Couple(1287, 5) As Byte.
    Mais comment puis-je ressortir mes cumuls selon les couples, triplettes, quadruples, et quintuples ?
    Car je dois traiter le cumul de chaque suite par la suite !

    --------------------------------------------------------------------------------------------------------------------------------------------

    Sinon l'option du tableau (50,50,50,50,50) as Byte semble fonctionner sans erreur dans le débogage.

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2014, 15h18
  2. [Débutant] Report : un tableau excel sous visual studio
    Par Msysteme dans le forum C#
    Réponses: 1
    Dernier message: 14/09/2012, 16h22
  3. Création d'un tableau à remplir sous visual studio
    Par marie-anne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2011, 10h23
  4. BDD SQL sous Visual Studio: impossible d'y accéder
    Par Leelith dans le forum Administration
    Réponses: 4
    Dernier message: 13/03/2010, 11h33
  5. Réponses: 4
    Dernier message: 08/10/2008, 09h55

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