Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment extraire des ressources ?

9 réponses
Avatar
LE TROLL
Bonjour,

J'ai des problèmes avec les ressources, je sais extraire et copier sur
dique une DLL, un fichier TXTn et jouer (seulement jouer) un fichier son
WAV, ainsi :

----------------début code-------

UTILISATION ET EXTRACTION DES RESSOURCES

fichier SON ""EXECUTER UN SON"" (mp3, wav)
My.Computer.Audio.Play(My.Resources.nomfichier, AudioPlayMode.Background)
' nomfichier = nom sans extension

fichier TEXTE
Dim nomFichier As String
Dim cheminPlusFichier As String
nomFichier = "\fin_cal.txt"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
File.WriteAllText(cheminPlusFichier, My.Resources.fin_cal)
If File.Exists(cheminPlusFichier) Then
' cheminPlusFichier = variable
' nomFichier = variable
' fin_cal = nom du fichier (en ressource) sans extension


fichier DLL
Dim nomFichier As String
Dim cheminPlusFichier As String
nomFichier = "\fin_cal.txt"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
File.WriteAllBytes(cheminPlusFichier, My.Resources.wlanapi())
' cheminPlusFichier = variable
' nomFichier = variable
' wlanapi = nom du fichier DLL (en ressource) sans extension

-----fin code----------

MAIS ! Je ne sais pas avec les ressources, extraire et mettre sur disque ou
lire afin de copier dans un objet sur le principe du code sus-cité, d'où 6
questions :

-1-
Comment extraire une image et la copier sur disque ?

-2-
Comment lire une image et la mettre en picuteBox1 ?

-3-
Comment extraire et copier sur disque un fichier son ?

-4-
Comment lire un fichier texte afin de le coller dans textBox1 ?

-5-
Comment extraire et copier sur disque un fichier ICO ?

-6-
Comment lire et mettre en form1.ico ?

???

Merci beaucoup, cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.

9 réponses

Avatar
Jérémy Jeanson
Bonjour LE TROLL,

Peux tu en dire un peu plus sur ce que tu cherches à faire :

1 - tu souhaites extraire tes ressources et les copier sur le disique
dur de ta machine?
Ou
2 - tu souhaites juste utiliser des ressources dans ton application?


Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Salut Jérémy,

A ta question : "les deux mon Capitaine" !

Au plaisir, cordialement ;o)

-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour LE TROLL,

Peux tu en dire un peu plus sur ce que tu cherches à faire :

1 - tu souhaites extraire tes ressources et les copier sur le disique
dur de ta machine?
Ou
2 - tu souhaites juste utiliser des ressources dans ton application?


Jérémy JEANSON
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Bonjour LE TROLL,

Pour utiliser les ressources on accède on a My.Resources (on peut tout
lire avec) mais ça tu le sais déjà.

Donc si on reprend dans l'ordre :
-1-
Comment extraire une image et la copier sur disque ?
-> My.Resources.TonImage.Save("...path du fichier...") ' Facile ;)

-2-
Comment lire une image et la mettre en picuteBox1 ?
-> Me.PictureBox1.LoadAsync("E:MyDocumentsRessourcesPng
console_32.png")

-3-
Comment extraire et copier sur disque un fichier son ?
Dim streamAudio As System.IO.UnmanagedMemoryStream =
My.Resources.tonfichierwav
Dim streamFile As New System.IO.FileStream("c:mon.wav",
IO.FileMode.Create)
Dim data(streamAudio.Length) As Byte
streamAudio.Read(data, 0, data.Length)
streamFile.Write(data, 0, data.Length)
streamFile.Flush()
streamFile.Close()

-4-
Comment lire un fichier texte afin de le coller dans textBox1 ?
-> textBox1.Text = System.IO.File.ReadAllText("...ton path...")

-5-
Comment extraire et copier sur disque un fichier ICO ?
-> Comme pour l'audio

-6-
Comment lire et mettre en form1.ico ?
lire Form1.ico??? je ne comprend pas la question

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Bonjour Jérémy,

Merci, toujours aussi bon ! Je vais voir ça dès que j'ai le temps, je
reviens si ça coince...

Pour le "6", mettre une icône dans form1.icon, ben une fom a une
propriété "icon" (form1.icon = ), comment donc depuis la ressource attribuer
à la form1.icon l'icône de la ressource ? C'est juste pour l'exemple
d'affectation d'une ressource "icône" à une propriété d'un objet de
l'application...

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour LE TROLL,

Pour utiliser les ressources on accède on a My.Resources (on peut tout
lire avec) mais ça tu le sais déjà.

Donc si on reprend dans l'ordre :
-1-
Comment extraire une image et la copier sur disque ?
-> My.Resources.TonImage.Save("...path du fichier...") ' Facile ;)

-2-
Comment lire une image et la mettre en picuteBox1 ?
-> Me.PictureBox1.LoadAsync("E:MyDocumentsRessourcesPng
console_32.png")

-3-
Comment extraire et copier sur disque un fichier son ?
Dim streamAudio As System.IO.UnmanagedMemoryStream My.Resources.tonfichierwav
Dim streamFile As New System.IO.FileStream("c:mon.wav",
IO.FileMode.Create)
Dim data(streamAudio.Length) As Byte
streamAudio.Read(data, 0, data.Length)
streamFile.Write(data, 0, data.Length)
streamFile.Flush()
streamFile.Close()

-4-
Comment lire un fichier texte afin de le coller dans textBox1 ?
-> textBox1.Text = System.IO.File.ReadAllText("...ton path...")

-5-
Comment extraire et copier sur disque un fichier ICO ?
-> Comme pour l'audio

-6-
Comment lire et mettre en form1.ico ?
lire Form1.ico??? je ne comprend pas la question

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
Jérémy Jeanson
Bonjour LE TROLL,

Ta question 6 peux sembler farfelue à certain, mais je crois
comprendre ce sur quoi tu butes. Il est impossible d'affecter un icon
à un formulaire winform vai le designer il faut faire le travail dans
le code.

Le plus propre consite à se mettre dans le constructeur de ton
formulaire :

Public Class Form1


Public Sub New()

' This call is required by the designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.
Me.Icon = My.Resources.MonIcon
End Sub

End Class

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
Bill2
Jérémy Jeanson wrote:
Bonjour LE TROLL,

Ta question 6 peux sembler farfelue à certain, mais je crois
comprendre ce sur quoi tu butes. Il est impossible d'affecter un icon
à un formulaire winform vai le designer il faut faire le travail dans
le code.




Bonjour,
Euh, moi, avec VS 2005 et 2008, j'ai la propriété "icon" pour chaque form,
dans la liste des propriétés.
Je peux aller choisir une icone sur le disque.

Par contre, effectivement, on ne peut pas lui dire d'aller chercher l'icone
dans les ressources, ça, c'est vrai.

--
Bill2
Proverbe à la con : Quand on met de l'argent de coté, on n'en a jamais
devant soi
Avatar
Jérémy Jeanson
On 1 fév, 12:56, "Bill2" wrote:
Jérémy Jeanson wrote:
> Bonjour LE TROLL,

> Ta question 6 peux sembler farfelue à certain, mais je crois
> comprendre ce sur quoi tu butes. Il est impossible d'affecter un icon
> à un formulaire winform vai le designer il faut faire le travail dans
> le code.

Bonjour,
Euh, moi, avec VS 2005 et 2008, j'ai la propriété "icon" pour chaque form,
dans la liste des propriétés.
Je peux aller choisir une icone sur le disque.

Par contre, effectivement, on ne peut pas lui dire d'aller chercher l'ico ne
dans les ressources, ça, c'est vrai.

--
Bill2
Proverbe à la con : Quand on met de l'argent de coté, on n'en a jamai s
devant soi



Oui pour le disque, mais l'objectif étant d'utiliser un seul fichier
de ressources.

Note que l'acces au disque va justement créer un second fichier de
ressoruces. Ceci peut rendre l'application beaucoup plus lourde si
justement l'icon doit être utilisé dans plusieurs Form.
D'autant plus qu'il faut mettre à jour chaque Form si on change l'icon

il n'y a pas d'autre solution viable que de le faire par code.

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Bonjour Jérémy,

Tout le code est ici :

http://mesromans.free.fr/testJoe.zip

Alors il y a plusieurs questions, déjà tu verras qu'il y a je crois
trois éléments qui ne fonctionnent pas (chaque partie de code est dans une
procédure bouton), généralement c'est refusé à cause d'une variable
dim chemin as string
Dans certain cas, il est dit que le type string n'est pas adapté, mais je ne
sais quoi mettre, dans d'autres cas ça ne dit rien mais ça plante à
l'exécution, le code est aussi sous cité, mais tu l'auras en totalité tout
prêt en téléchargeant.

Je cherche aussi comment n'utiliser que des variables, car ça peut être
utile, exemple:
My.Ressources.variablex
Ça c'est refusé, il faut mettre le nom de la ressource, or je voudrais bien
pourvoir indicer les ressources (soit en totalité, soit par type), afin de
m'en servir en boucle, comment faire, je me demande ?

Voici le code

---début de code---

' test form 1
Option Explicit On
Public Class Form1

Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
End Sub

'PLANTE A L'EXECUTION
Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
' ressource image copiée sur disque
Dim chemin As String
Dim variableImage As String
chemin = My.Application.Info.DirectoryPath
variableImage = "maya"
TextBox1.Text = chemin & vbCrLf
TextBox1.Text = TextBox1.Text & variableImage
My.Resources.Maya.Save(chemin)
'My.Resources.variableImage.Save(chemin) ' <- COMMENT mettre avec
VARIABLE ???
End Sub

' MARCHE PAS !
Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
'ressource image copiée dans picture1
Dim variableImage As String
variableImage = "maya"
TextBox1.Text = variableImage
'Me.PictureBox1.LoadAsync(My.Resources.Maya) ' <- MARCHE PAS !
'Me.PictureBox1.LoadAsync(My.Resources.variableimage) ' <- ET AVEC UNE
VARIABLE, COMMENT ?
End Sub

Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
'ressource son copiée sur disque
Dim fic As String
Dim cheminFichier As String
Dim fichier As String
Dim chemin As String
Dim streamAudio As System.IO.UnmanagedMemoryStream
'
chemin = My.Application.Info.DirectoryPath
fichier = "monSon.wav"
cheminFichier = chemin & fichier
fic = "fin_mus"
Dim streamFile As New System.IO.FileStream(cheminFichier,
IO.FileMode.Create)
'
streamAudio = My.Resources.fin_mus
'streamAudio = My.Resources.fic ' <- MARCHE PAS EN VARIABLE ???
Dim data(streamAudio.Length) As Byte
streamAudio.Read(data, 0, data.Length)
streamFile.Write(data, 0, data.Length)
streamFile.Flush()
streamFile.Close()
'
TextBox1.Text = fic & vbCrLf
TextBox1.Text = TextBox1.Text & cheminFichier & vbCrLf
TextBox1.Text = TextBox1.Text & fichier & vbCrLf
TextBox1.Text = TextBox1.Text & chemin & vbCrLf
TextBox1.Text = TextBox1.Text & streamAudio.Length
End Sub

Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
' ressource fichier txt copié dans text1
Dim chemin As String
Dim fichier As String
Dim fic As String
Dim cheminFichier As String
'
chemin = My.Application.Info.DirectoryPath
fichier = "fin_cal.txt"
cheminFichier = chemin & fichier
fic = "fin_cal"
'
TextBox1.Text = My.Resources.fin_cal
'TextBox1.Text = My.Resources.fic ' MARCHE PAS EN VARIABLE ???
End Sub


' PLANTE A L EXECUTION
Sub Button5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button5.Click
'ressource ICO copiée sur disque
Dim chemin ' As String
Dim variableIco As String
chemin = My.Application.Info.DirectoryPath
variableIco = "finmonde"
TextBox1.Text = chemin & vbCrLf
TextBox1.Text = TextBox1.Text & variableIco
My.Resources.finmonde.Save(chemin) ' valeur String ne peut être
convertie en System.IO.Stream
'My.Resources.variableIco.Save(chemin) ' <- COMMENT mettre avec VARIABLE
???
End Sub

Sub Button6_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button6.Click
' ressource ico copier dans form1.icon
Dim variableIco As String
variableIco = "finmonde"
InitializeComponent()
Me.Icon = My.Resources.finmonde
'Me.Icon = My.Resources.variableIco ' <- MARCHE PAS EN VARIABLE
End Sub

Sub Button7_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button7.Click
'ressource SON jouée
Dim variableSon As String
variableSon = "fin_mus"
My.Computer.Audio.Play(My.Resources.fin_mus, AudioPlayMode.Background)
'My.Computer.Audio.Play(My.Resources.variableSon,
AudioPlayMode.Background) ' MARCHE PAS EN VARIABLE ???
End Sub


Sub Button8_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button8.Click
'ressource fichier texte copiée sur disque
Dim nomFichier As String
Dim cheminPlusFichier As String
Dim variableFic As String
variableFic = "fin_cal"
nomFichier = "fin_cal.txt"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
System.IO.File.WriteAllText(cheminPlusFichier, My.Resources.fin_cal)
'System.IO.File.WriteAllText(cheminPlusFichier,
My.Resources.variableFic) ' MARCHE PAS EN VARIABLE ???
End Sub

Sub Button9_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button9.Click
Dim nomFichier As String
Dim cheminPlusFichier As String
Dim variableFic As String
nomFichier = "wlanapi.dll"
variableFic = "wlanapi"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
System.IO.File.WriteAllBytes(cheminPlusFichier, My.Resources.wlanapi)
'System.IO.File.WriteAllBytes(cheminPlusFichier,
My.Resources.variableFic) ' MARCHE PAS EN VARIABLE ???
End Sub

End Class

---fin de code---

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"Jérémy Jeanson" a écrit dans le message de
news:
Bonjour LE TROLL,

Ta question 6 peux sembler farfelue à certain, mais je crois
comprendre ce sur quoi tu butes. Il est impossible d'affecter un icon
à un formulaire winform vai le designer il faut faire le travail dans
le code.

Le plus propre consite à se mettre dans le constructeur de ton
formulaire :

Public Class Form1


Public Sub New()

' This call is required by the designer.
InitializeComponent()

' Add any initialization after the InitializeComponent() call.
Me.Icon = My.Resources.MonIcon
End Sub

End Class

---
Jérémy Jeanson
MCP
http://www.jjeanson.fr
Avatar
LE TROLL
Bonjour,

Voici la réponse globale pour indexation des moteurs à ma question sur
la gestion des ressources :

---------------------
Option Explicit On ' test form 1
Public Class Form1
Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim variableRessource As String
Dim nomFichier As String
Dim cheminPlusFichier As String
'
variableRessource = "maya" ' ressource image copiée sur disque
nomFichier = "maya.bmp"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
My.Resources.Maya.Save(cheminPlusFichier)
'
variableRessource = "maya" 'ressource image copiée dans picture1
PictureBox1.Image = My.Resources.Maya
'
Dim streamAudio As System.IO.UnmanagedMemoryStream 'ressource son copiée
sur disque
nomFichier = "monSon.wav"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
variableRessource = "fin_mus"
Dim streamFile As New System.IO.FileStream(cheminPlusFichier,
IO.FileMode.Create)
streamAudio = My.Resources.fin_mus
Dim data(streamAudio.Length) As Byte
streamAudio.Read(data, 0, data.Length)
streamFile.Write(data, 0, data.Length)
streamFile.Flush()
streamFile.Close()
'
nomFichier = "fin_cal.txt" ' ressource fichier txt copié dans text1
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
variableRessource = "fin_cal"
TextBox1.Text = My.Resources.fin_cal
'
variableRessource = "finmonde" 'ressource icône copiée sur disque
nomFichier = "finmonde.ico"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
System.IO.File.WriteAllText(cheminPlusFichier, My.Resources.fin_cal)
'
variableRessource = "finmonde" ' ressource ico copier dans form1.icon
InitializeComponent()
Me.Icon = My.Resources.finmonde
'
variableRessource = "fin_mus" 'ressource SON jouée
My.Computer.Audio.Play(My.Resources.fin_mus, AudioPlayMode.Background)
'
variableRessource = "fin_cal" ' ressource fichier texte copiée sur
disque
nomFichier = "fin_cal.txt"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
System.IO.File.WriteAllText(cheminPlusFichier, My.Resources.fin_cal)
'
nomFichier = "wlanapi.dll" ' ressource DLL copiée sur disque
variableRessource = "wlanapi"
cheminPlusFichier = My.Application.Info.DirectoryPath & nomFichier
System.IO.File.WriteAllBytes(cheminPlusFichier, My.Resources.wlanapi)
End Sub
End Class
---------------------

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.