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 :

IQueryAble -> Enum -> Paramètres de fonction


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Par défaut IQueryAble -> Enum -> Paramètres de fonction
    Bonjour,

    Je ne m'y prend peut être pas de la bonne façon mais je récupère les informations concernant les cultures comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public q_Cultures_all As IQueryable(Of Integer) = _
    From q In Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.SpecificCultures).AsQueryable _
    Order By q.LCID Select q.LCID
    J'aimerais bien placer les résultats dans une énumération d'entiers mais je ne vois vraiment pas comment les insérer...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Public Enum cult As Integer
    ' ???
    ' ???
        End Enum
    Ensuite utiliser l'énumération dans un paramètre d'une fonction.
    Comme ça, on ne peut insérer que des valeurs bien définies dans ma fonction.

    Est ce que c'est possible avec enum ?

    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Icewall Voir le message
    J'aimerais bien placer les résultats dans une énumération d'entiers mais je ne vois vraiment pas comment les insérer...
    Si je comprends bien ce que tu veux faire, ça n'a pas de sens... Un enum est un type, tu ne peux pas le modifier à l'exécution. Les valeurs doivent être prédéfinies, or la liste des cultures n'est pas figée.

    Quel est le besoin exactement ? Pourquoi veux-tu utiliser un enum ?

    Autre remarque : pas la peine d'utiliser IQueryable pour récupérer la liste des cultures, ça ne t'apporte rien par rapport à IEnumerable... sauf si tu as besoin de l'expression tree correspondant à la requête, mais je ne vois pas ce que tu en ferais

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Par défaut
    Tu as raison pour le type enum qui ne peut pas être modifié à l'exécution.

    Je créais une fonction et je passais en paramètres les valeurs des attributs d'un objet lang.

    Ces valeurs d'attributs serait récupérées dans une liste au préalable. D'où l'idée de l'IQueryable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim q_Cultures_all As IQueryable(Of Globalization.CultureInfo) = From q In Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.SpecificCultures).AsQueryable _
                                                                     Order By q.LCID
    Je travaille sur le SDK d'Open XML et je n'ai pas trouvé le type correspondant à ST_Lang alors j'ai cherché du côté de CultureInfo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Imports DocumentFormat.OpenXml.Packaging
    Imports DocumentFormat.OpenXml.Wordprocessing
    Imports DocumentFormat.OpenXml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Protected Friend my_Languages As New Languages
    Ici j'aimerais passer en paramètre des valeurs de la liste q_Cultures_all.
    En attendant de trouver un moyen de le faire j'ai mis des valeurs pour certaines propriétés de mon objet my_Languages.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Protected Friend Function _Languages_constructor() As Languages
            With my_Languages
                .Bidi = "fr-CA"
                .EastAsia = "Ko-KR"
                .Val = "en-CA"
            End With
            Return my_Languages
        End Function
    Dixit référence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    2.3.2.18 lang (Languages for Run Content)
    <w:lang w:val="fr-CA" w:bidi="he-IL" />
    </w:rPr>
    </w:r>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <complexType name="CT_Language">
    <attribute name="val" type="ST_Lang" use="optional"/>
    <attribute name="eastAsia" type="ST_Lang" use="optional"/>
    <attribute name="bidi" type="ST_Lang" use="optional"/>
    </complexType>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    2.18.51 ST_Lang (Language Reference)
    This simple type specifies that its contents will contain one of the following:
     A hexadecimal language code (ST_LangCode)
     An ISO 639-1 letter code plus a dash plus an ISO 3166-1 alpha-2 letter code (ST_String)
    The contents of this language are interpreted based on the context of the parent XML element.
    [Example: Consider a language code defined as follows :
    <w:lang w:val=”en-CA” />
    This language is therefore specified as English (en) and Canada (CA), resulting in use of the English (Canada)
    language setting. end example]
    This simple type is defined as a union of the following types:
     The ST_LangCode simple type (§2.18.52).
     The ST_String simple type (§2.18.89).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    2.18.52 ST_LangCode (Two Digit Hexadecimal Language Code)
    This simple type specifies that its contents will contain a two digit hexadecimal language code defined as
    follows:
    Language Code Language - Country/Region
    1025 Arabic - Saudi Arabia
    1026 Bulgarian
    J'espère que mes explications sont plus claires maintenant

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Icewall Voir le message
    J'espère que mes explications sont plus claires maintenant
    A vrai dire, j'ai rien compris

    Si tu as un code genre "fr-CA" (IeftLanguageTag) ou 1036 (LCID), tu peux récupérer la culture correspondante avec CultureInfo.GetCultureInfo("fr-CA") ou CultureInfo.GetCultureInfo(1036). C'est pas ça que tu cherches ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Par défaut
    Je suis arrivé au résultat que je voulais

    Remplir la liste de cultures de l'utilisateur.
    Récupérer ses valeurs LCID pour effectuer un check des valeurs des paramètres
    Si les paramètres font partie de la liste, l'objet languages est construit.

    Dans mon programme, les valeurs de _param_Bidi, _param_Bidi, _param_Val vont changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Imports DocumentFormat.OpenXml.Packaging
    Imports DocumentFormat.OpenXml.Wordprocessing
    Imports DocumentFormat.OpenXml
    Imports DocumentFormat.OpenXml.Office2010.Word
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        Public my_Languages As Languages
        Public CultureInfo_list As List(Of System.Globalization.CultureInfo) = System.Globalization.CultureInfo.GetCultures(Globalization.CultureTypes.SpecificCultures).ToList
     
        Public _param_Bidi As Integer = 1033
        Public _param_EastAsia As Integer = 1042
        Public _param_Val As Integer = 1036
     
        Public Sub Add_CultureInfo()
     
            Dim _list_LCID As New List(Of Integer)
            For Each a In CultureInfo_list
                _list_LCID.Add(a.LCID)
            Next
     
            If ((_list_LCID.Contains(_param_Bidi) = True) And (_list_LCID.Contains(_param_EastAsia) = True) And (_list_LCID.Contains(_param_Val) = True)) Then
                _Languages_constructor()
            Else
                Console.WriteLine("Valeur encodée incorrecte, non comprise dans votre liste de culture")
            End If
        End Sub
     
        Public Function _Languages_constructor() As Languages
            With my_Languages
                .Bidi = _param_Bidi '"en-US"
                .EastAsia = _param_EastAsia '"Ko-KR"
                .Val = _param_Val '"fr-FR"
            End With
            Return my_Languages
        End Function
    Il y a surement moyen d'améliorer le code mais ça fonctionne déjà bien

    Désolé pour mes premiers messages, c'est vrai que je n'étais pas clair du tout.
    Tu es toujours là pour aider les autres tomlev tu es vraiment cool

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 04/01/2006, 16h57
  2. liste énumérée de const. perso comme paramètre de fonction
    Par batou22003 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/12/2005, 20h37
  3. Paramètres de fonction : pointeurs ou valeurs ?
    Par Xandar dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/11/2005, 16h50
  4. Retrouver les valeurs des paramètres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 10h42
  5. Paramètre de fonction
    Par Reynald dans le forum Débuter
    Réponses: 6
    Dernier message: 05/01/2005, 21h48

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