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 :

resources inaccessible depuis sub [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut resources inaccessible depuis sub
    Bonjour,
    Dans visual studio j’essaie d'accéder à une ressources (qui est un fichier texte) mais visual studio me dit :
    Param_def n'est pas un membre de Gma3_to_ascii.My.Resources
    Alors que le fichier est bien dans les resources.

    Nom : Capture resources.jpg
Affichages : 107
Taille : 42,3 Ko

    Qu'est ce que je ne fait pas bien ?

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    Il ne suffit pas de créer un répertoire "Resources" et d'y mettre un fichier.
    Pour que ça fonctionne, il faut créer un fichier de ressource (un RESX) et y ajouter le fichier ensuite.
    Cela se fait dans les propriétés du projet :
    Nom : 2025-02-10_102051.png
Affichages : 107
Taille : 6,0 Ko

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    Citation Envoyé par popo Voir le message
    Il ne suffit pas de créer un répertoire "Resources" et d'y mettre un fichier.
    Pour que ça fonctionne, il faut créer un fichier de ressource (un RESX) et y ajouter le fichier ensuite.
    Cela se fait dans les propriétés du projet :
    Nom : 2025-02-10_102051.png
Affichages : 107
Taille : 6,0 Ko
    Merci de m'avoir répondu popo.

    Le dossier ressources était déjà présent juste après la création du projet donc j'ai cru qu'il suffisait de le mettre dedans pour que ça fonctionne.
    J'utilise visual studio 2022 et quand je vais dans les propriétés du projet pour accéder aux ressources il y a un message disant que c'est plus par la qu'il faut passé.

  4. #4
    Membre éprouvé Avatar de excalybur
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2014
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 317
    Par défaut
    Oui effectivement la procédure a un peu changé sur VS 2022

    Ouvrir l'explorateur de solution dans Affichage
    Cliquer DROIT sur le projet
    Cliquer l'onglet Ressource (colonne à gauche)
    Il va apparaitre la feuille des ressources
    A coté de 'Ajouter une ressource' il y a un toute petite flèche vers le bas (voir photo)
    Cliquer sur cette flèche
    Cliquer sur 'Ajouter un fichier existant
    Chercher le bon fichier dans tes répertoires et valider.

    Nom : Capture Ajouter fichier ressource.jpg
Affichages : 93
Taille : 25,4 Ko

    A+

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 930
    Par défaut
    La procédure ne dépend pas de la version de Visual Studio mais de la version Framework.

    En .Net Framework que tu sois sous VS2019 ou VS2022, la procédure est la même.
    D'ailleurs l'écran que excalybur présente est le même que le mien.

    En .Net CORE, l'onglet des ressources a été déplacé à la fin de la liste mais il est toujours dans la fenêtre des propriétés.

    En complément, voici quelque pièges à éviter.
    Si le répertoire "Resources" existe déjà dans l'explorateur Windows, Visual Studio risque de refuser de créer les ressources.
    Il faut alors fermer VS, supprimer physiquement ce dossier et recommencer.

    Bien mettre l'accesseur "Public' sur la ressource (en haut, à coté du bouton de suppression de la ressource).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    Citation Envoyé par excalybur Voir le message
    Oui effectivement la procédure a un peu changé sur VS 2022

    Ouvrir l'explorateur de solution dans Affichage
    Cliquer DROIT sur le projet
    Cliquer l'onglet Ressource (colonne à gauche)
    Il va apparaitre la feuille des ressources
    A coté de 'Ajouter une ressource' il y a un toute petite flèche vers le bas (voir photo)
    Cliquer sur cette flèche
    Cliquer sur 'Ajouter un fichier existant
    Chercher le bon fichier dans tes répertoires et valider.

    Nom : Capture Ajouter fichier ressource.jpg
Affichages : 93
Taille : 25,4 Ko

    A+
    J'ai fait ce que tu m'a dit mais je n'ai pas la même fenêtre.
    voici ce que j'ai :
    les propriétés du projet
    Nom : Captureresources 1.jpg
Affichages : 70
Taille : 65,1 Ko


    puis la fenêtre des ressources
    Nom : Captureresources 2.jpg
Affichages : 68
Taille : 55,2 Ko

    est-ce normal ?

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 699
    Par défaut
    Bonjour,
    oui c'est normal, c'est la dernière mouture de VS 2022.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    Citation Envoyé par chrismonoye Voir le message
    Bonjour,
    oui c'est normal, c'est la dernière mouture de VS 2022.
    du coup mon fichier texte est bien présent !!

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 699
    Par défaut
    Citation Envoyé par wholehog2 Voir le message
    du coup mon fichier texte est bien présent !!
    Ça y ressemble.
    Voir si ce code retourne les données string du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim my_assembly As Assembly = Assembly.GetExecutingAssembly()
            Dim my_namespace As String = my_assembly.GetName().Name.ToString()
            Dim filePath As String = my_namespace + ".texte.txt"
     
            Using s As Stream = my_assembly.GetManifestResourceStream(filePath)
                If s IsNot Nothing Then
                    Using sr As New StreamReader(s, Encoding.GetEncoding("ISO-8859-1"))
                        strgBuilt.Append(sr.ReadToEnd()) ' Lire tout le contenu du fichier
     
                    End Using
                End If
            End Using
    Bien sur changer le nom du fichier ressource.
    Il faut aussi incorporer la ressource, tout est expliqué

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    Citation Envoyé par chrismonoye Voir le message
    Ça y ressemble.
    Voir si ce code retourne les données string du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim my_assembly As Assembly = Assembly.GetExecutingAssembly()
            Dim my_namespace As String = my_assembly.GetName().Name.ToString()
            Dim filePath As String = my_namespace + ".texte.txt"
     
            Using s As Stream = my_assembly.GetManifestResourceStream(filePath)
                If s IsNot Nothing Then
                    Using sr As New StreamReader(s, Encoding.GetEncoding("ISO-8859-1"))
                        strgBuilt.Append(sr.ReadToEnd()) ' Lire tout le contenu du fichier
     
                    End Using
                End If
            End Using
    Bien sur changer le nom du fichier ressource.
    Il faut aussi incorporer la ressource, tout est expliqué
    Oui ça marche ! Que je le mette dans un sous dossier "files" (comme dans le tuto) ou dans le dossier resources déjà présent.

    Du coup on ne peut plus faire comme avant ?

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 699
    Par défaut
    Citation Envoyé par wholehog2 Voir le message
    Oui ça marche !
    Du coup on ne peut plus faire comme avant ?
    C'est à dire ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    Citation Envoyé par chrismonoye Voir le message
    C'est à dire ?
    Avec le code que tu m'as envoyé j'arrive à lire le fichier et mettre son contenu dans un autre fichier.

    Pour acceder au fichier je fesais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.resources.mon_fichier

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    699
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 699
    Par défaut
    Citation Envoyé par wholehog2 Voir le message
    Pour acceder au fichier je fesais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.resources.mon_fichier
    Oui, c'est possible j'ai testé une chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strgBuilt.Append(My.Resources.String1)
    en regardant plus précisément ta capture d'écran, le lien de tes ressources avec les mécanismes de Resources n'est pas fait.

    Relis les posts de popo :
    Il ne suffit pas de créer un répertoire "Resources" et d'y mettre un fichier.
    Pour que ça fonctionne, il faut créer un fichier de ressource (un RESX) et y ajouter le fichier ensuite.
    tu devrais obtenir une chose comme cela : (clic droit sur projet + ajouter + un fichier ressources)

    Nom : ResourcesD.jpg
Affichages : 56
Taille : 41,5 Ko

    ensuite insérer tes fichiers dans ton dossier Ressources, ça devrait ressembler à ça :

    Nom : ResourcesG.jpg
Affichages : 55
Taille : 39,3 Ko

    Et les derniers conseils de popo :
    En complément, voici quelque pièges à éviter.
    Si le répertoire "Resources" existe déjà dans l'explorateur Windows, Visual Studio risque de refuser de créer les ressources.
    Il faut alors fermer VS, supprimer physiquement ce dossier et recommencer.

    Bien mettre l'accesseur "Public' sur la ressource (en haut, à coté du bouton de suppression de la ressource).
    Sans oublier les sauvegardes de ton travail...

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 68
    Par défaut
    J'ai suivi pas à pas ce que vous m'avez indiqué mais j'ai remarqué que dans la boite de dialogue d'ajout du fichier je ne pouvais l'ajouter que dans form1.

    Du coup je suis reparti d'un nouveau projet et j'ai collé mon code.
    J'ai appliqué vos recommandations et maintenant j'accède à mon fichier par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my.Resources.Resources.Param_def
    il y a 2 fois resources mais ça marche

    Merci à tous pour votre aide.

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

Discussions similaires

  1. Sub inaccessible depuis programme c#
    Par peter27x dans le forum VBA Word
    Réponses: 9
    Dernier message: 08/09/2008, 19h49
  2. XAMPP: MySQL inaccessible depuis le réseau
    Par SpecialCharacter dans le forum Administration
    Réponses: 1
    Dernier message: 31/01/2008, 08h51
  3. Intranet inaccessible depuis un lieu précis
    Par lodan dans le forum Administration
    Réponses: 6
    Dernier message: 04/10/2007, 17h28
  4. Rendre fichiers inaccessibles depuis le web
    Par madislak dans le forum Apache
    Réponses: 4
    Dernier message: 20/08/2007, 19h17

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