My.resources et variable [Résolu]

Neiflheim1 31 Messages postés vendredi 6 février 2009Date d'inscription 20 janvier 2010 Dernière intervention - 24 nov. 2009 à 10:32 - Dernière réponse : PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention
- 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 

11 réponses

Répondre au sujet
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 24 nov. 2009 à 11:27
+4
Utile
Dim blabla as Object = My.Resources.ResourceManager.GetObject("ta_ressource_string")
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PCPT
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 24 nov. 2009 à 10:46
0
Utile
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
Neiflheim1 31 Messages postés vendredi 6 février 2009Date d'inscription 20 janvier 2010 Dernière intervention - 24 nov. 2009 à 10:53
0
Utile
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
Neiflheim1 31 Messages postés vendredi 6 février 2009Date d'inscription 20 janvier 2010 Dernière intervention - 24 nov. 2009 à 11:55
0
Utile
C'est exactement ce que je voulais, merci de ton aide !
Commenter la réponse de Neiflheim1
cs_TcheTche 8 Messages postés dimanche 3 novembre 2002Date d'inscription 29 mars 2010 Dernière intervention - 29 mars 2010 à 02:23
0
Utile
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
cs_TcheTche 8 Messages postés dimanche 3 novembre 2002Date d'inscription 29 mars 2010 Dernière intervention - 29 mars 2010 à 03:21
0
Utile
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 mars 2010 à 08:50
0
Utile
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
cs_TcheTche 8 Messages postés dimanche 3 novembre 2002Date d'inscription 29 mars 2010 Dernière intervention - 29 mars 2010 à 14:05
0
Utile
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 mars 2010 à 15:01
0
Utile
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
cs_TcheTche 8 Messages postés dimanche 3 novembre 2002Date d'inscription 29 mars 2010 Dernière intervention - 29 mars 2010 à 16:36
0
Utile
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
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 29 mars 2010 à 17:38
0
Utile
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.