Comment utiliser ResXResourceReader ?

Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 - 5 janv. 2011 à 14:40
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 - 6 janv. 2011 à 22:23
Salut !

Objectif enregistrer et lire des chaînes des ressources.

Par apport à cet exemple ou il utilise "items.resx", je ne sais pas donner le chemin de mes ressources internes de mon projet.
Application.Resources.BasePath n'existe pas ^^, comment faire ?
   Public Shared Sub Main()

      ' Create a ResXResourceReader for the file items.resx.
      Dim rsxr As ResXResourceReader
      rsxr = New ResXResourceReader("items.resx")

      ' Iterate through the resources and display the contents to the console.
      Dim d As DictionaryEntry
      For Each d In  rsxr
         Console.WriteLine(d.Key.ToString() + ":" + ControlChars.Tab + d.Value.ToString())
      Next d

      'Close the reader.
      rsxr.Close()

   End Sub

11 réponses

Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
5 janv. 2011 à 19:29
J'en suis ici, sa fonctionne toujours pas...

        Dim myForm As System.Object = My.Forms.Form1
        Dim myAssembly As [Assembly]
        Dim myManager As System.Resources.ResourceManager
        Dim myString As String

        myAssembly = myForm.GetType.Assembly
        myManager = New System.Resources.ResourceManager("My", myAssembly)
        myString = myManager.GetString("MaChaine")
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
5 janv. 2011 à 20:18
J'y arrive pas !!!!!!! je m'arrête pour today !!!!
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:09
Deux jours de taf, j'y arrive toujours pas.

J'en suis là:
        Dim myForm As System.Object = My.Application  'My.Forms.Form1
        Dim myAssembly As [Assembly]
        Dim myManager As System.Resources.ResourceManager
        Dim myManifest As String()
        Dim myReflect As System.Reflection.ManifestResourceInfo
        Dim myReader As System.Resources.ResourceReader
        Dim myStream As System.IO.Stream

        Dim myString As String

        myAssembly = myForm.GetType.Assembly
        myManifest = myAssembly.GetManifestResourceNames ' 
        myReflect = myAssembly.GetManifestResourceInfo(myManifest(0))

        'Si le source est bien incorporé au projet alors
        'Sinon on créer un lien resource a partir d'un fichier ?
        If myReflect.ResourceLocation = (Reflection.ResourceLocation.Embedded Or Reflection.ResourceLocation.ContainedInManifestFile) Then
            myStream = myAssembly.GetManifestResourceStream(myManifest(0))
            myReader = New ResourceReader(myStream)
        Else
            myManager = New ResourceManager(myManifest(0), myAssembly)
            myManager = ResourceManager.CreateFileBasedResourceManager(myManifest(1), IO.Directory.GetDirectoryRoot(myAssembly.Location), Nothing)
            myString = myManager.GetString("CheminLastFilePublier")
        End If
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:11
Purée !!! mais ou ce cache les ressources enregistrés depuis les propriétés de mon projet ?????
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:22
myManifest contient 2 pointeurs
(0) = Projet.Resources.resources
(1) = Projet.Form1.resources

Ce qui est étrange c'est que ma myReflect est pas renseigné !???
myReflect.FileName = Nothing
myReflect.ReferencedAssembly = Nothing
myReflect.ResourceLocation = 5

Peut-être que l'erreur vient de myAssembly ???
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:24
Ma question acutelle, c'est comment trouver le Form1.resx intégré a mon projet ?
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:27
Peut-être qu'en mode debug on dois pointer sur un chemin répertoire à
form1.resx et qu'une l'exécutable compilé, on peut utiliser mon bout de code ?

NON !
Il doit y avoir un moyen en debug de faire pointer mes énumératives sur la ressources embedded !!!
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:45
Extra ! pfffffff :(


J'énumère tous les fichiers et y'a que mon exécutable, j'ai bien renseigné TRUE pour dire d'y ajouter les ressources pourtant !
        Dim myFiles As System.IO.FileStream()

        myAssembly = myForm.GetType.Assembly
        myFiles = myAssembly.GetFiles(True)
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:47
Si seulement je pouvais faire un Clone objet resource de mon "My.Resources"
pffffffffffffffffff
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 11:53
lol ^^ bah koi faut essayer ^^
oRes = CType(My.Resources, System.Resources)
0
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 janv. 2011 à 22:23
Je vais décevoir mais j'abandonne !
Voila ce que je supprime de mon projet:

Public Sub ApercuPublication()
        Dim myForm As System.Object = My.Application  'My.Forms.Form1
        Dim myAssembly As [Assembly]
        Dim myName As AssemblyName
        Dim myManager As System.Resources.ResourceManager
        Dim myManifest As String()
        Dim myReflect As System.Reflection.ManifestResourceInfo
        Dim myReader As System.Resources.ResXResourceReader
        Dim myRef As System.Resources.ResXFileRef
        Dim myStream As System.IO.Stream

        Dim myString As String
        Dim myFiles As System.IO.FileStream()

        myAssembly = Assembly.GetEntryAssembly
        myManifest = myAssembly.GetManifestResourceNames
        myName = Assembly.GetExecutingAssembly.GetName.Clone
        myFiles = myAssembly.GetFiles(True)

        myReflect = myAssembly.GetManifestResourceInfo(myAssembly.EntryPoint.DeclaringType.Name & ".Form1.Resources") ' myManifest(0))


        'Si le source est bien incorporé au projet alors
        'Sinon on créer un lien resource a partir d'un fichier ?
        If myReflect.ResourceLocation = (Reflection.ResourceLocation.Embedded Or Reflection.ResourceLocation.ContainedInManifestFile) Then
            myStream = myAssembly.GetManifestResourceStream(myManifest(0))
            myReader = New ResXResourceReader(myStream)
        Else
            myManager = New ResourceManager(myManifest(0), myAssembly)
            myManager = ResourceManager.CreateFileBasedResourceManager(myManifest(1), IO.Directory.GetDirectoryRoot(myAssembly.Location), Nothing)
            myString = myManager.GetString("CheminLastFilePublier")
        End If
        'myManager = New System.Resources.ResourceManager ("Form1.resx", myAssembly)
        'myManager = New System.Resources.ResourceManager("Form1.resx", myAssembly)
        'Dim rm As ResourceManager = ResourceManager.CreateFileBasedResourceManager("NetChatter", ".", Nothing)
        'myManager = ResourceManager.CreateFileBasedResourceManager("e", ".", Nothing)
        'DemS = rm.GetObject("DemS")

        'Dim a As Resources.ResXResourceReader = New ResXResourceReader()
        'myObject = myManager.GetObject("CheminLastFilePublier")




    End Sub
0
Rejoignez-nous