My.resources et variable [Résolu]

Messages postés
31
Date d'inscription
vendredi 6 février 2009
Dernière intervention
20 janvier 2010
- - Dernière réponse : PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 29 mars 2010 à 17:38
Bonjour à tous,

J'ai plusieurs ressources dans mon appli, et j'aimerais les interroger de façon dynamique.

Par exemple j'ai deux fichiers ressources :
benzene.txt
TCE.txt

Dans mon formulaire, j'ai une list box avec benzene et TCE.

Ma question, comment puis je générer automatiquement le lien vers ma ressource?

Du genre :
dim polluant as string
polluant = Select_polluant.text
msgbox(My.resources.polluant)

Mais cela ne marche pas, comme c'est bizarre =)
Merci d'avance pour votre aide !
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
4
Merci
Dim blabla as Object = My.Resources.ResourceManager.GetObject("ta_ressource_string")

Merci PCPT 4

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de PCPT
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
salut,

après compilation tu ne peux ajouter de ressource, il n'y a donc rien de dynamique :
tu proposes une liste de choix FIXE, relative aux ressources FIXES

le select case est le plus approprié

ps : si ta ressource est un fichier, il faut l'ouvrir avant de pouvoir afficher son contenu. normal que ton MSGBOX ne fonctionne pas donc


++
[hr]
Commenter la réponse de PCPT
Messages postés
31
Date d'inscription
vendredi 6 février 2009
Dernière intervention
20 janvier 2010
0
Merci
Je sais qu'après compilation je ne peux plus ajouter de ressources, je voulais dire dynamique au niveau de la génération du lien vers la ressource.

A terme, je vais avoir environ 70 polluants, et donc faire un case serait assez long... C'est pour cela que j'aurais souhaité avoir 2-3 lignes de code seulement pour cette fonction.

Ma liste de choix est fixe, et mes ressources aussi ;)

un simple code du genre :
polluant_fichier = My.resources.& variable_list_box...

Après je peux le manipuler comme je le souhaite ;) malheureusement cela ne marche pas, donc si vraiment il n'y a pas de méthode moins laborieuse pour exploiter une série de ressources je ferais avec ;)

Merci pour ta réponse
Commenter la réponse de Neiflheim1
Messages postés
31
Date d'inscription
vendredi 6 février 2009
Dernière intervention
20 janvier 2010
0
Merci
C'est exactement ce que je voulais, merci de ton aide !
Commenter la réponse de Neiflheim1
Messages postés
8
Date d'inscription
dimanche 3 novembre 2002
Dernière intervention
29 mars 2010
0
Merci
TcheΤche

Moi aussi j'ai eu du mal à trouver mais bon ....
C'est exactement ce que je voulais, merci de ton aide !

j'ai 3 fois 200 fichiers en ressources à gérer dans mon application
Merci encore
Commenter la réponse de cs_TcheTche
Messages postés
8
Date d'inscription
dimanche 3 novembre 2002
Dernière intervention
29 mars 2010
0
Merci
TcheTche

Eh bien non cela ne marche pas pour Test0011.txt

j'ai un message d'erreur qui me dit que le nom du fichier n'est pas déclaré.

TextBox1.Text = My.Resources.Test0011 : ça marche

Dim blabla1 As Object = My.Resources.ResourceManager.GetObject(Test0011)

TextBox1.Text = My.Resources.blabla1 : ça ne marche pas
Commenter la réponse de cs_TcheTche
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
salut TcheTche ,

normal que çà ne marche pas (et par la suite quand "çà marche pas" précise l'erreur stp!) : getobject renvoie la ressource non typée, pas une propriété imaginaire

et getobject, comme indiqué, utilise le nom STRING, donc à utiliser avec les quotes

si ta ressource est valide çà donne :
TextBox1.Text = My.Resources.ResourceManager.GetObject("Test0011").ToString


[hr]
Commenter la réponse de PCPT
Messages postés
8
Date d'inscription
dimanche 3 novembre 2002
Dernière intervention
29 mars 2010
0
Merci
TcheTche
mon cher PCPT tu as mis un terme à une nuit blanche de recherches ! je t'en remercie d'autant plus que ta première réponse date du mardi 24 novembre 2009 je ne savais pas si tu etais toujours présent!
l'erreur exacte c'était que par exemple "Test0011 n'est pas membre de Resources" alors que j'ai 600 fichiers du type Test0011.txt dans Resources et qu'ils sont tous valides.
je ne voulais pas écrire 200 lignes du type
Dim NumTest As Integer
'NumTest = CStr(ListBox1.SelectedItem)
'If NumTest 1 Then TextBox1.Text My.Resources.Test0011 : RichTextBox2.Text = My.Resources.Test0012 : TextBox2.Text = My.Resources.Test0013
que je remplace avntageusement par :
TextBox1.Text = My.Resources.ResourceManager.GetObject("Test" & CStr(ListBox1.SelectedItem) & "1").ToString
RichTextBox2.Text = My.Resources.ResourceManager.GetObject("Test" & CStr(ListBox1.SelectedItem) & "2").ToString
TextBox2.Text = My.Resources.ResourceManager.GetObject("Test" & CStr(ListBox1.SelectedItem) & "3").ToString
et ça marche ! encore merci et à 68 ans c'est une joie d''apprendre...!
ce que je ne comprends pas encore très bien c'est la dualité d'appartenance à la fois comme "String" et "membre de de resources"

j'ai 3 fichiers .txt car je ne sais pas extraire une ligne précise de mon fichier .txt .

je vais maintenant m'initier aux collections de label
, richtextbox ou de textbox

je développe un programme qui utilise du français et du grec moderne et donc en unicode.
Commenter la réponse de cs_TcheTche
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
ravi d'avoir pu t'aider

600 fichiers?
petits ou non, la ressource est compilée avec l'exe

pour une telle quantité (et masse sans doute) il serait largement préférable d'utiliser le type BLOB/OLE d'une base de données (access)

simple conseil...

bonne continuation
Commenter la réponse de PCPT
Messages postés
8
Date d'inscription
dimanche 3 novembre 2002
Dernière intervention
29 mars 2010
0
Merci
TcheTche

Contenu fichier N°1 dans textbox1
Αυγούστου - Καθήστε - Καλό - Μπορείτε - Μπορούμε - αρχές - γράμματα - δεύτερη - είστε; - κινέζικα - μαγειρεύει - μαγειρεύω - μετά - νέα - ραντεβού -
que je place dans des labels cliquables

Contenu fichier N°2 dans richtextbox2
00.
01. Y a-t-il du courrier pour moi ? > Έχει για μένα;
02. A table ! / Le repas est servi ! > στο τραπέζι, παρακαλώ!
03. début octobre / au début du mois d’octobre > Οκτωβρίου
04. J’avais rendez-vous chez le médecin. > Είχα στο γιατρό.
05. à la mi-août / mi-août > μέσα .
06. le second / la seconde / le deuxième / la deuxième > ο δεύτερος / η / το δεύτερο
07. les dernières nouvelles > τα τελευταία .
08. Veuillez me l’indiquer sur la carte. > να μου το δείξετε στο χάρτη, παρακαλώ;
09. Elle comprend le chinois. > Καταλαβαίνει .
10. Elle cuisine bien. / Elle sait bien cuisiner. / Elle est bonne cuisinière. > καλά
11. Bon voyage ! / Bonne route ! > ταξίδι!
12. Pouvons-nous faire du feu ? > να ανάψουμε φωτιά;
13. préparer le repas > το φαγητό
14. Quel âge avez-vous ? > Πόσο χρονών .
15. avant / pendant / après les repas > πριν / κατά / το γεύμα
16.
Contenu fichier N°3 dans textbox2
1. γράμματα - 2. Καθήστε - 3. αρχές - 4. ραντεβού - 5. Αυγούστου - 6. δεύτερη - 7. νέα - 8. Μπορείτε - 9. κινέζικα - 10. μαγειρεύει - 11. Καλό - 12. Μπορούμε - 13. μαγειρεύω - 14. είστε; - 15. μετά -

et cela par 200
les ??? correspondent à des caractères grecs.!!
je me pose la question suivante
si je réunis les trois fichiers en un seul comment je vais choisir les lignes du fichier unique pour les distribuer dans chacune des "textbox"
existe t-il des instructions pou cela? pour n'avoir 200 fichiers au lieu 600 pour le fun
bien qu'au final le contenu de resources ne soit guère plus lourd
Commenter la réponse de cs_TcheTche
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
0
Merci
pas besoin de ressources alors

un simple XML avec pour chaque valeur 3 items, étant le contenu de tes fichiers en base64

exemple de structure


  
    <value name="zone1">valeur_B64</value>
    <value name="zone2">valeur_B64</value>
    <value name="zone3">valeur_B64</value>
  
  
    <value name="zone1">valeur_B64</value>
    <value name="zone2">valeur_B64</value>
    <value name="zone3">valeur_B64</value>
  
  etc


le framework gère tout çà très bien, et tu n'auras pas à t'embêter à tout lire (cf XPATH)
Commenter la réponse de PCPT

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.