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 :

tableau de chaine basique


Sujet :

VB.NET

  1. #1
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut tableau de chaine basique
    Bonjour,

    j'ai une question con mais je n'arrive pas à trouver comment faire ....

    Voilà, je dois utiliser une classe vb qui possède une variable déclarée comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public monTableau As String() = {"", ""}
    ici, on voit que l'on peut mettre que 2 élément dedans.
    Le souci, c'est qu'à l'utilisation de cette variable, je la rempli de manière dynamique et je peux très bien avoir 2 comme 12 chaîne(s) à y mettre, bref, je ne sais pas à l'avance.

    Comment modifier cette déclaration de manière à ce que le nombre de chaine contenu dans cette variable puisse être dynamique ou infini ??

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    ta question n'est pas idiote je te rassure

    ce dont tu a besoin c'est d'un tableau 1D a longueur variable.
    Le soucis c'est comment déterminer sa longueur,
    pour ça on va avoir besoin d'un peux plus de détails sur ça:
    je peux très avoir 2 comme 12 chaine
    d’où viennent ces chaines?

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Et pourquoi pas une List(of String) ?

  4. #4
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Merci pour vos réponses.

    Et bien en fait, c'est une variable qui me sert à stocker une liste d'objets choisi depuis une page web.
    Du coup, la quantité dépend totalement de celui qui sélectionne ces objets sur la page.

    Et le problème c'est que cette variable est déclarée dans une classe.
    Je l'appelle ensuite pour l’utiliser dans ma page web.
    De plus, cette classe, je ne l'ai pas développé et que je dois conserver cette variable car elle est utilisée ailleurs.
    j'aimerais juste pouvoir changer sa déclaration éventuellement si c'est possible.

  5. #5
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    ok, mais donne nous les détails de ta variable qui sort de ta classe mystérieuse,
    sont type ou un aperçue d'utilisation *qu'on puisse te suivre*

    Nathanael Marchand ne t'a pas proposé de modifié ta variable,
    juste de stocker tes données dans une liste plutôt qu'un tableau.
    *ça répond pas mal a ton probléme, surtout avec les boucles For each*

  6. #6
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Mystérieuse ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Class KWO
    
      Public monTableau As String() = {"", ""}
      ....
      ... traitements ....
    
    End Class
    Dans ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Dim objKWO as New KWO
       Dim intMaxItems As Integer = DT.Rows.Count
       For i As Integer = 0 To (intMaxItems - 1)
          objKWO.monTableau(i) = DT.Rows(i)("Nom").ToString()
       Next
    Voilà.
    Dès que j'ai plus de deux éléments, j'ai mon erreur.
    Ce qui est normal bien entendu, mais voilà mon souci.

  7. #7
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    hummmm

    il faut que tu ai un tableau de bonne dimension,
    c'est normale qu'il te jette après la deuxième valeur.

    il existe la fonction ReDim, pour redimensionner ton tableau dynamiquement *perplexe*

  8. #8
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    j'essaie ça mais ça ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public monTableau As String() = New String(999) {}

  9. #9
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    hummmm

    il faut que tu ai un tableau de bonne dimension,
    c'est normale qu'il te jette après la deuxième valeur.

    il existe la fonction ReDim, pour redimensionner ton tableau dynamiquement *perplexe*
    Mais comment puis-je re-déclarer mon tableau (avec reDim) qui est dans la classe, à partir de ma page web ?
    De plus Dim est considéré comme private dans la classe et moi j'ai besoin d'accéder à ma variable ....

    j'essai de voir comment contourner ce pb mais vraiment ça a l'air de rien mais c'est une belle épine tout de même !!!

  10. #10
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    tu trouvera un peut d'explication dans le cour de Philippe Lasserre


    perso j'ai essayé de déclaré une variable en Public puis de la ReDim,
    VS2008 ne m'a pas posé de problème.

  11. #11
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    la meilleure solution a été donnée, merci de l'appliquer plutot que de chercher à utiliser un tableau démodé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim éléments As New List(Of String)
    éléments.Add("un nouveau string")
    For Each s As String in éléments
     
    Next
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    tu trouvera un peut d'explication dans le cour de Philippe Lasserre


    perso j'ai essayé de déclaré une variable en Public puis de la ReDim,
    VS2008 ne m'a pas posé de problème.
    Merci pour le lien, je regarde ça de suite...
    par contre, peux-tu me montrer ta syntaxe s'il te plait pour attaquer la variable qui se trouve dans ma classe, depuis le code-behind de ma page web avec reDim ? je ne vois pas comment tu peux faire ça ? Désolé

  13. #13
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    En reprenant ce qui tu a mis plus haut,
    ça donnerai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Class KWO
     
      Public monTableau As String() = {"", ""} 'je connaissais pas le crochets
      '....
      '... traitements ....
      '....
     
      Redim monTableau (30) ' par exemple
      'ou
      Redim Preserve monTableau (30) ' pour conserver les données qu'il y avait avant
     
      '....
     
    End Class

  14. #14
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Il faudrait peut être procéder à une revue de la conception du système. Avoir besoin d'accéder à un membre privé signifie qu'on s'est gourré quelque part

  15. #15
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Hummmm

  16. #16
    Membre éclairé Avatar de Stephane_br
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    la meilleure solution a été donnée, merci de l'appliquer plutot que de chercher à utiliser un tableau démodé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim éléments As New List(Of String)
    éléments.Add("un nouveau string")
    For Each s As String in éléments
     
    Next
    Merci pour votre aide.
    j'ai fais un essai avec une page test et ça marche comme ça en effet.
    Du coup, je pense que je vais revoir tout le site pour modifier ces foutus accès à ces vieilles variables. Sinon, je n'arriverais absolument pas à me dépêtrer de mon problème avec ces vieux tableaux !!

    Je pense que la classe a été mal conçue dès le départ.
    Autant vaut mieux la refaire correctement avant de mettre en ligne mon site.

    Merci pour votre aide.

  17. #17
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Un conseil, Utilise plutot les List(of <T>) qui sont nettement moins gourmandes en mémoire vive.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/05/2007, 16h10
  2. compraison de fichier txt et tableau de chaine
    Par steph_nied dans le forum C
    Réponses: 10
    Dernier message: 15/05/2006, 16h26
  3. [C] tableau de chaines de caractères
    Par kitsune dans le forum C
    Réponses: 18
    Dernier message: 01/04/2006, 19h18
  4. tableau de chaine
    Par florantine dans le forum C++
    Réponses: 1
    Dernier message: 18/01/2006, 16h17
  5. Réponses: 11
    Dernier message: 31/12/2005, 14h00

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