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 :

Déclaration d'un tableau de string en constant


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut Déclaration d'un tableau de string en constant
    Bonjour,

    Je voudrais avoir un tableau de string déclarer en constante.

    C'est a dire que je veux avoir des valeurs textuel dans un tableau que je peut retrouver en fonction de l'indice de ce même tableau.

    D’ailleurs je voudrais un tableau ou autre astuce pour arriver à mes fin.

    J'avais pensé faire ca:

    Déclarer en variable global

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public CAUSE_PV(4) As String = {"NONE","PV SWITCH","EXT OVP","V BATT"}

    Et lorsque j'aurais voulu l'utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1.txtMaCause.Text = CAUSE_PV(NumeroError)
    NumeroError étant un integer.

    Cela marche pas, dans ma déclaration, apparemment en VB6 on peut pas affecter les textes lors de la déclaration ou je m'y prend mal tout simplement.

    Merci de votre aide

  2. #2
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
    CAUSE_PV(0)="NONE"
    CAUSE_PV(1)="PV SWITCH"
    CAUSE_PV(2)="EXT OVP"
    CAUSE_PV(3)="V BATT"
    End Sub

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Une autre façon, juste pour savoir que cela existe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim CAUSE_PV As Variant
    CAUSE_PV = Array("NONE", "PV SWITCH", "EXT OVP", "V BATT")
     
    Dim T As Integer
    For T = 0 To UBound(CAUSE_PV)
        Debug.Print CAUSE_PV(T)
    Next T
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Une autre façon, juste pour savoir que cela existe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim T As Integer
    For T = 1 To 4
        Debug.Print Choose(T,"NONE", "PV SWITCH", "EXT OVP", "V BATT")
    Next T

  5. #5
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Citation Envoyé par DAUDET78 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
    CAUSE_PV(0)="NONE"
    CAUSE_PV(1)="PV SWITCH"
    CAUSE_PV(2)="EXT OVP"
    CAUSE_PV(3)="V BATT"
    End Sub
    Bonjour et merci d'avoir répondu, mais effectivement c'est ce que j'avais indiqué, on ne peut pas faire la déclaration et l'affectation en même temps en VB6.

    Il n'y a pas d'autre moyen, car celle la je la connaissais, car j'aurais aimer avoir les données du tableau au même endroit que toute les variables global afin que l'on puisse facilement les retrouver. C'est une reprise d'un programme assez lourd et plusieurs personne peuvent travailler dessus. C'est surtout pour que l'on ai pas besoin de chercher dans le code ou se trouve les données du tableau si l'on doit les modifier.

    Pour le moment je vais affecter les données de cette façon. S'il y a d'autre moyen faite moi signe. (Structure ou autre possibilités)

    Merci

  6. #6
    Membre émérite Avatar de DAUDET78
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2008
    Messages
    635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 635
    Par défaut
    Citation Envoyé par megamario Voir le message
    C'est surtout pour que l'on ai pas besoin de chercher dans le code ou se trouve les données du tableau si l'on doit les modifier.
    Ce genre de "Texte", je préfère les mettre dans un fichier d'initialisation (modification facile sur site sans recompiler, changement de langue immédiat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Texte_Bouton]
    Texte_0=NONE
    Texte_1=PV SWITCH
    Texte_2=EXT OVP
    Texte_3=V BATT

  7. #7
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour
    Citation Envoyé par DAUDET78 Voir le message
    Ce genre de "Texte", je préfère les mettre dans un fichier d'initialisation (modification facile sur site sans recompiler, changement de langue immédiat)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Texte_Bouton]
    Texte_0=NONE
    Texte_1=PV SWITCH
    Texte_2=EXT OVP
    Texte_3=V BATT
    En ce cas, autant le mettre dans un fichier de ressources.

  8. #8
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Citation Envoyé par megamario Voir le message
    Bonjour et merci d'avoir répondu, mais effectivement c'est ce que j'avais indiqué, on ne peut pas faire la déclaration et l'affectation en même temps en VB6.

    Il n'y a pas d'autre moyen, car celle la je la connaissais, car j'aurais aimer avoir les données du tableau au même endroit que toute les variables global afin que l'on puisse facilement les retrouver. C'est une reprise d'un programme assez lourd et plusieurs personne peuvent travailler dessus. C'est surtout pour que l'on ai pas besoin de chercher dans le code ou se trouve les données du tableau si l'on doit les modifier.

    Pour le moment je vais affecter les données de cette façon. S'il y a d'autre moyen faite moi signe. (Structure ou autre possibilités)

    Merci
    En utilisant un fichier de ressources ça se fait assez simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     'Dans le fichier de ressources :
    101:NONE
     102 : V SWITCH
    103:EXT OVP
    104:V BATT
    
    ' En entête de modules la déclaration des Identificateurs
    Const ID_RES_NONE=101
    Const ID_RES_PV_SWITCH=102
    Const ID_RES_EXT_OVP=103
    Const ID_RES_V_BATT=104
    
    'Dans le code :
    msgbox loadresstring(ID_RES_NONE)
    Sur le coup, ça peut paraître lourd mais au final toute modification du fichier de ressource est répercuté dans l'intégralité du code,
    sans oubli et la traduction en est très aisée.

    Une astuce :
    plutôt qu'appeler Loadresstring, j'utilise une fonction passerelle style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function L_Resstring(id as long)as string
        L_Resstring=replace(loadresstring(id),"|",vbcrlf)
    end function
    qui permet de traiter automatiquement les retours chariot.

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Citation Envoyé par megamario Voir le message
    ... on ne peut pas faire la déclaration et l'affectation en même temps en VB6.
    ...
    C'est possible d'une façon détournée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Function ConstDirect(iPos As Integer) As String
      ConstDirect = Array("NONE", "PV SWITCH", "EXT OVP", "V BATT")(iPos)
    End Function
    Mais comme cela a déjà été indiqué, l'utilisation de fichier ou de ressource est préférable pour la maintenance.

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  10. #10
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/09/2007, 08h57
  2. initialiser constante tableau de String
    Par danyboy85 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/04/2006, 17h44
  3. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  4. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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