(VB.EXPRESS 2005) Les Ressources

Résolu
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009 - 13 sept. 2007 à 04:00
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009 - 27 sept. 2007 à 18:20
Quelqu'un peut m'expliquer comment ouvrir un fichier .txt qui est dans les ressources avec VB Express 2005 ? J'ai déjà chercher a plusieurs places et essayer des dizaines de chose mais rien ne marche. En gros, je voudrait mettre le fichier  Le-Fichier.TXT  dans les ressources et en appuyant sur un bouton ceci ouvre ce fichier. Je suis capable de l'ajouter au ressources et tout mais je n'arrive pas a trouver comme le faire ouvrir. Je crois qu'il faut d'abords le charger en mémoire et ensuite le faire ouvrir mais je ne sais pas comment le faire. Quelqu'un pourrait m'aider.
Merci

37 réponses

Utilisateur anonyme
13 sept. 2007 à 23:37
Si c'est pour la lire après, ca ne changera pas grands chose



Using StW As New System.IO.StreamWriter("Chemin\EtNom\DeTon\Fichier.txt")
  StW.Write(My.Resources.TaRes)
End Using,

----

(
3
Utilisateur anonyme
25 sept. 2007 à 11:06
Tu fais forcement des erreurs, j'ai fait de multiples essais, tous ont marcher.

__________
Kenji
(
3
Utilisateur anonyme
26 sept. 2007 à 21:50
Bon, puisque tu semble vouloir extraire des multiples fichiers de ton application, il vaut mieux faire la fonction a tout faire :
Private Sub SaveRessourceToFile(ByVal FileName As String, ByVal ResName As String)
  Dim ResX As New System.Resources.ResourceManager("WindowsApplication1.Resources", _
    System.Reflection.Assembly.GetCallingAssembly())
  Dim ResObj As Object = ResX.GetObject(ResName)
  If ResObj.GetType() Is GetType(Byte()) Then
    Dim ResBytes() As Byte = CType(ResObj, Byte())
    Using FS As New System.IO.FileStream(FileName, IO.FileMode.Create)
      FS.Write(ResBytes, 0, ResBytes.Length)
      FS.Close()
    End Using
    ResBytes = Nothing
  ElseIf ResObj.GetType() Is GetType(System.IO.Stream) Then
    Using SR As New System.IO.StreamReader(CType(ResObj, System.IO.Stream))
      Using SW As New System.IO.StreamWriter(FileName)
        SW.Write(SR.ReadToEnd())
        SW.Close()
      End Using
      SR.Close()
    End Using
  ElseIf ResObj.GetType() Is GetType(String) Then
    Using SW As New System.IO.StreamWriter(FileName)
      SW.Write(ResObj.ToString())
      SW.Close()
    End Using
  Else
    Throw New System.Exception(String.Format("A implémenter : Sauvegarde depuis un {0}", _
      ResObj.GetType()))
  End If
  ResObj = Nothing
End Sub, ----
(Coloration syntaxique automatique par Kenji)

__________
Kenji
(
3
Utilisateur anonyme
27 sept. 2007 à 07:06
Pour l'utiliser :
Call SaveRessourceToFile("Chemin/de/ton/fichier.exe", "NomDeTaRessource")
Pour le "A implémenter : Sauvegarde depuis un {0}", tu n'as rien a faire. C'est si j'ammais le type de la ressource est autre qu'un Stream, une String ou un tableau de bytes.

__________
Kenji
(
3

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

Posez votre question
Utilisateur anonyme
13 sept. 2007 à 11:15
Salut,

De quel manière l'as-tu mis dans les ressources ?

__________
Kenji
(
0
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
13 sept. 2007 à 12:05
Bonjour

Pour récupérer un flux du fichier en ressource ou le texte du fichier  :
My.ressources.NomDeLaRessource

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
13 sept. 2007 à 20:55
Je l'ai ajouté en allant dans les propriétés du projet et en allant dans ressources. Ensuite j'ai cliqué sur Ajouter un fichier existant et je l'ai ajouté.

Pour ce qui est de "My.ressources.NomDeLaRessource"  j'avais déja trouvé ça mais je fais quoi avec ???  J'ai essayer bien des choses mais ça me donnais toujours la meme erreur. Genre une valeur string ne peut etre convertie en tableau de niveau 1  ou quelque chose du genre. Bref... ça ne marchait pas.

Merci
0
Utilisateur anonyme
13 sept. 2007 à 21:10
Ca te retourne une chaîne contenant tout ton fichier. Donc pas de tableau.
Dim Content as String = My.Resources.NomDeLaRes







__________
Kenji

(


0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
13 sept. 2007 à 23:17
Ok ça règle cettre erreur mais je n'y arrive toujours pas . Est-ce que vous pourriez me donner (ou m'expliquer pour que je le trouve par moi-meme) une partie du code. Seulment pour copier le fichier de la ressource sur le disque dur(ou le mettre en mémoire). A partir de la je devrait être capable de le faire exécuter.
Merci
0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
13 sept. 2007 à 23:39
J'ai chercher un peu et pour copier je dois utiliser "Imports System.IO
" au début  mais a chaque fois ça me dit "Erreur de syntaxe.
" Quelqu'un a une idée pourquoi ça fait cela.
Merci
0
Utilisateur anonyme
13 sept. 2007 à 23:44
"Erreur de syntaxe." ? Ou ça ? Sur quel lignes précises ?







__________
Kenji

(


0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
13 sept. 2007 à 23:47
Héhé !! Ça fonctionne ton premier code. 
Merci
0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
13 sept. 2007 à 23:50
Et bien c'étais dans la liste des erreurs que ça affichait. Imports  étais souligné et ça disais erreur de syntaxe.
0
Utilisateur anonyme
14 sept. 2007 à 00:03
Tu le mettais surment pas au bon endrois.

__________
Kenji
(
0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
24 sept. 2007 à 19:48
Et maintenant est-ce possible de faire la meme chose mais avec un .BAT ?
Merci
0
Utilisateur anonyme
24 sept. 2007 à 19:58
Une ressource (ou un fichier) est un tas d'octets. Une extension sur un fichier sert juste à le classer. Le contenu d'un fichier reste le même que se soit un .txt, .bat, .docx, .sln, .ext ...
Donc ou est le problème ?







__________
Kenji

(


0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
24 sept. 2007 à 20:07
Ok mais quand c'est un .exe parcontre ce n'est pas la meme chose parce que si tu l'ouvre avec Notepad  c'est tout plein de caractere bizzare.

Mais bon... le probleme c'est que j'arrive a copier le .bat mais il n'a plus la meme quantité d'octets donc il ne marche plus. Comment je peu le copier pour qu'il soit identique a l'original.
Merci
0
Utilisateur anonyme
24 sept. 2007 à 20:15
Qu'as tu dans un exe ? Un tas d'octets. Du code ascii 255 caractères possibles ^^


C'est au niveau du code que sa se passe mal ou quand tu le met dans la ressource ?
Ca ne devrais pas coincer en principe.

__________
Kenji
(
0
seltsam Messages postés 38 Date d'inscription vendredi 23 février 2007 Statut Membre Dernière intervention 31 mars 2009
24 sept. 2007 à 21:24
Bien quand j'ajoute le .bat a mes ressources il se transforme en .txt. Peut-etre a cause de ca que ca ne fonctionne pas.
0
Utilisateur anonyme
24 sept. 2007 à 21:30
J'ai fait l'essai, ca fonction parfaitement.
J'ai mis dans mon code




"Chemin\EtNom\DeTon\Fichier.txt"
Il faut bien sur remplacer txt par bat.










__________
Kenji

(


0
Rejoignez-nous