none
Comment mettre une ressource en variable ? RRS feed

  • Question

  • Bonjour,

    Selon les cas spécifiques au type de ressource :

    - My.Resources.VARIABLE.Save(cheminPlusFichier)
    - TextBox1.Text = My.Resources.VARIABLE
    - System.IO.File.WriteAllText(cheminPlusFichier, My.Resources.VARIABLE)
    - My.Computer.Audio.Play(My.Resources.VARIABLE, AudioPlayMode.Background)
    - System.IO.File.WriteAllText(cheminPlusFichier, My.Resources.VARIABLE)

    Je cherche à savoir comment faire accepter une variable dans la ligne de commande  appelée ici VARIABLE (et de quel type), de telle façon qu'on ne soit pas obligé de mettre le nom de la ressource, mais de passer ce dernier en variable ?

    Merci, cordialement.


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    mardi 2 février 2010 16:03

Réponses

  • Bonjour Alex,

    Désolé, marche pas, voici le code :

    Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim rm As System.Resources.ResourceManager
        rm = My.Resources.ResourceManager
        For Each arg As String In Environment.GetCommandLineArgs
          Console.Out.WriteLine(rm.GetObject(arg.ToString))
        Next
        Dim t As String = "Test affichage Debug"
        Console.Out.WriteLine(t)
    End Sub

    Tu peux essayer, y a juste à metre un bouton et le code, en tout cas ce n'est pas important car j'ai une autre méthode pour l'afficher (réponse suite à ma question) :

    Sub test2()
        ' méthode Mathieu = ok
        My.Application.DoEvents()
        Dim rs As ResourceSet = My.Resources.ResourceManager.GetResourceSet(CultureInfo.InvariantCulture, True, False)
        Dim dicos As IDictionaryEnumerator = rs.GetEnumerator() ' Méthode pour parcourir toutes les ressources :
        TextBox1.Text = ""
        While dicos.MoveNext
          TextBox1.Text = TextBox1.Text & dicos.Key.ToString() & vbCrLf
        End While
    End Sub

    A toi de voir, je considère "classé", encore merci, cordialement :o)

     


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    • Marqué comme réponse EhJoe mardi 9 février 2010 08:32
    mardi 9 février 2010 08:31

Toutes les réponses

  • Bonjour Joe,

    Pour accéder aux paramètres de la ligne de commande on utilise

    Environment.GetCommandLineArgs

     

    Pour accéder aux ressources, on utilise System.Resourcers.ResourceManager.

     

    Voici un exemple de code qui lit tous les parametres de la ligne de commande et puis affiche les valeurs des ressources correspondantes :

     

    Dim rm as System.Resources.ResourceManager
    rm = My.Resources.ResourceManager
    For Each arg As String In Environment.GetCommandLineArgs
    Console.WriteLine(rm.GetObject(arg.ToString()))
    Next

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    jeudi 4 février 2010 09:46
  • Bonjour Alex,

    Merci de ta réponse, ce qui me permettra de savoir comment chercher dans les ressources de cette façon, toutefois ce n'est pas la totalité de ma question, car après je l'utilise comment ce paramètre, dans cet exemple :

    My.Computer.Audio.Play(My.Resources.VARIABLE, AudioPlayMode.Background)

    -> VARIABLE étant une variable qui contient le paramètre, j'ai testé cette forme, la variable contenant le nom (sans l'extension) de la rressource est refusée ???

    Cordialement.

    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    jeudi 4 février 2010 14:46
  • Alex, suite...

    Marche pas, peut être que j'ai mal écrit ton code adapté au textbox ?

    C'est bien sensé lire les ressources ?


    Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim rm As System.Resources.ResourceManager
      rm = My.Resources.ResourceManager
      TextBox1.Text = ""
      For Each arg As String In Environment.GetCommandLineArgs
        TextBox1.Text = TextBox1.Text & rm.GetObject(arg.ToString) & vbCrLf
      Next
    End Sub
    



    Ça correspond à quoi la sortie "console", ça fait quoi ?
    Ceci me fait penser aux applications MsDos en matrice texte qui écrivent directement à l'écran (mode fenêtre MsDos désormais) ?

    Cordialement.

     


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    jeudi 4 février 2010 15:11
  • Bonjour Joe,

     

    Désolé pour la réponse tardive.

    Console est un objet qui fait référence a une console DOS, si ton programme est de type Win32 Console et pas Win Form. Je l’ai utilisé juste pour exemplifier, tu peux utiliser aussi un fichier texte, un message box ou un composant textbox. Si tu démarre ton application avec plusieurs paramètres et tu analyses ton code en mode debug, tu nu vois aucun changement dans les valeurs retournées par rm.GetObject() ?

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    lundi 8 février 2010 14:39
  • Bonjour Alex,

    Désolé, marche pas, voici le code :

    Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim rm As System.Resources.ResourceManager
        rm = My.Resources.ResourceManager
        For Each arg As String In Environment.GetCommandLineArgs
          Console.Out.WriteLine(rm.GetObject(arg.ToString))
        Next
        Dim t As String = "Test affichage Debug"
        Console.Out.WriteLine(t)
    End Sub

    Tu peux essayer, y a juste à metre un bouton et le code, en tout cas ce n'est pas important car j'ai une autre méthode pour l'afficher (réponse suite à ma question) :

    Sub test2()
        ' méthode Mathieu = ok
        My.Application.DoEvents()
        Dim rs As ResourceSet = My.Resources.ResourceManager.GetResourceSet(CultureInfo.InvariantCulture, True, False)
        Dim dicos As IDictionaryEnumerator = rs.GetEnumerator() ' Méthode pour parcourir toutes les ressources :
        TextBox1.Text = ""
        While dicos.MoveNext
          TextBox1.Text = TextBox1.Text & dicos.Key.ToString() & vbCrLf
        End While
    End Sub

    A toi de voir, je considère "classé", encore merci, cordialement :o)

     


    Joe ___ Romans et Logiciels ___ http://irolog.free.fr
    • Marqué comme réponse EhJoe mardi 9 février 2010 08:32
    mardi 9 février 2010 08:31