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

Ressource, comment extraire ???

3 réponses
Avatar
LE TROLL
Bonjour,

Alors, je fais ça:

Sub Command1_Click() ' in ressources
Dim nomfic As String
nomfic = LoadResString(101)
'le fichier se nomme "Lune.txt" donc
nomfic="Lune.txt"
' ensuite ???

End Sub

Ensuite je fais quoi pour sortir le contenu du
fichier res(id 101), et l'écrire sur le disque
sous forme d'un fichier "Lune2.txt". Là, j'ai le
nom sous lequel est stockée la ressource (le
fichier Lune.txt), mais ensuite, je fais quoi pour
l'écrire sur le disque dur, car je n'ai que le
nom, pas le contenu ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

3 réponses

Avatar
tking
LE TROLL avait prétendu :
Bonjour,

Alors, je fais ça:

Sub Command1_Click() ' in ressources
Dim nomfic As String
nomfic = LoadResString(101)
'le fichier se nomme "Lune.txt" donc
nomfic="Lune.txt"
' ensuite ???

End Sub

Ensuite je fais quoi pour sortir le contenu du
fichier res(id 101), et l'écrire sur le disque
sous forme d'un fichier "Lune2.txt". Là, j'ai le
nom sous lequel est stockée la ressource (le
fichier Lune.txt), mais ensuite, je fais quoi pour
l'écrire sur le disque dur, car je n'ai que le
nom, pas le contenu ???





Private Sub Command1_Click()


Dim ExtFle() As Byte
ExtFle = LoadResData(101, "CUSTOM")


Open "c:test_res.txt" For Binary As #1

Put #1, 1, ExtFle

Close #1

End Sub

'-------------------------------------

Voilà, y'a pas plus simple. L'ID de la ressource est 101, c'est une
ressource "CUSTOM" et le contenu COMPLET est écrit dans un fichier dans
C:
Tu peux nommer le fichier comme tu veux. L'appel se fait avec
LoadResData.
.

Si tu veux acceder directement à une donnée dans passer par un fichier,
il y a un exemple ici
http://www.vbfrance.com/infomsg_LOADRESDATA-DANS-VARIABLE-STRING_562362.aspx
que je recopie

'---------------------------------------------------

Function GetResData(ResId, ResType) As String
Static myArray() As Byte
Dim a As Long
On Error Resume Next
myArray = VB.LoadResData(ResId, ResType)
If Err.Number = 9 Then Err.Clear
GetResData = Space$(65536)
For a = 0 To 65536
Mid$(GetResData, a + 1, 1) = Chr$(myArray(a))
If Err.Number = 9 Then Exit For
Next a
End Function

'----------------------------------------------------

Que tu appeles pour tester avec

MsgBox GetResData(101, "CUSTOM")

Mais tu peux ruser si tu veux acceder à un élément, avec la fonction
SPLIT, ce qui donne

Dim ls() As String
ls() = Split(GetResData(101, "CUSTOM"), vbCrLf)

MsgBox ls(0)
MsgBox ls(1)

'------------------------

Bien sur, dans l'exemple ci-dessus, le fichier dans la ressource a au
moins un saut de ligne, donc deux éléments, le separateur etant VBCRLF
(retour à la ligne).



Bon courage.
Avatar
LE TROLL
merci, je vois ça dès que possible :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" a écrit dans le message de
news:
| LE TROLL avait prétendu :
| > Bonjour,
| >
| > Alors, je fais ça:
| >
| > Sub Command1_Click() ' in ressources
| > Dim nomfic As String
| > nomfic = LoadResString(101)
| > 'le fichier se nomme "Lune.txt" donc
| > nomfic="Lune.txt"
| > ' ensuite ???
| >
| > End Sub
| >
| > Ensuite je fais quoi pour sortir le
contenu du
| > fichier res(id 101), et l'écrire sur le disque
| > sous forme d'un fichier "Lune2.txt". Là, j'ai
le
| > nom sous lequel est stockée la ressource (le
| > fichier Lune.txt), mais ensuite, je fais quoi
pour
| > l'écrire sur le disque dur, car je n'ai que le
| > nom, pas le contenu ???
|
|
|
| Private Sub Command1_Click()
|
|
| Dim ExtFle() As Byte
| ExtFle = LoadResData(101, "CUSTOM")
|
|
| Open "c:test_res.txt" For Binary As #1
|
| Put #1, 1, ExtFle
|
| Close #1
|
| End Sub
|
| '-------------------------------------
|
| Voilà, y'a pas plus simple. L'ID de la ressource
est 101, c'est une
| ressource "CUSTOM" et le contenu COMPLET est
écrit dans un fichier dans
| C:
| Tu peux nommer le fichier comme tu veux. L'appel
se fait avec
| LoadResData.
| .
|
| Si tu veux acceder directement à une donnée dans
passer par un fichier,
| il y a un exemple ici
|
http://www.vbfrance.com/infomsg_LOADRESDATA-DANS-VARIABLE-STRING_562362.aspx
| que je recopie
|
|
'---------------------------------------------------
|
| Function GetResData(ResId, ResType) As String
| Static myArray() As Byte
| Dim a As Long
| On Error Resume Next
| myArray = VB.LoadResData(ResId, ResType)
| If Err.Number = 9 Then Err.Clear
| GetResData = Space$(65536)
| For a = 0 To 65536
| Mid$(GetResData, a + 1, 1) =
Chr$(myArray(a))
| If Err.Number = 9 Then Exit For
| Next a
| End Function
|
|
'----------------------------------------------------
|
| Que tu appeles pour tester avec
|
| MsgBox GetResData(101, "CUSTOM")
|
| Mais tu peux ruser si tu veux acceder à un
élément, avec la fonction
| SPLIT, ce qui donne
|
| Dim ls() As String
| ls() = Split(GetResData(101, "CUSTOM"), vbCrLf)
|
| MsgBox ls(0)
| MsgBox ls(1)
|
| '------------------------
|
| Bien sur, dans l'exemple ci-dessus, le fichier
dans la ressource a au
| moins un saut de ligne, donc deux éléments, le
separateur etant VBCRLF
| (retour à la ligne).
|
|
|
| Bon courage.
|
|
Avatar
LE TROLL
Bonjour Tking,

Enfin ça marche, ton code modifié, oui. Car je
n'avais pas enregistré en custom mais en chaîne,
sauf que l'extraction avec chaîne ne fonctionnait
guère...
Voici le code:

Option Explicit ' luneCalcule form 1
Sub Form_Load()
Dim extrait() As Byte
Dim p01a As Long
ChDrive App.Path
ChDir App.Path
extrait = LoadResData(2000, "CUSTOM")
p01a = FreeFile
Open "Lune_extrait.txt" For Binary As p01a
Put #p01a, 1, extrait
Close p01a
End Sub

***

Moi je croyais qu'on pouvait rentrer le nom du
fichier avec du code, or manifestement c'est à la
main que l'on rentre id + nom, ça personne ne me
l'a dit!

Manifestement, on peut tout rentrer avec
custom (personnaliser), et c'est mieux, car un
explorateur s'ouvre, qu'en penses-tu ?

Par contre il reste un tout petit problème,
c'est qu'avec custom, on voit:
type = custom
id = 2000
pays = France

Alors, question comment savoir qu'elle est le
nom de la référence custom qu'on a saisi, elle se
trouve où, moi, avec custom (personnaliser), j'ai
entré "Lune.txt", or je ne vois nulle part ce nom,
impossible de savoir, comment fait-on ???

Pour custom, y a marqué "français", mais je
mets "chinois", est que quelque chose va changer
dans mon cas, n'est-ce pas réservé au fichier de
langues ???

Est-ce que quand on quitte le programme, ce
dernier efface tous les fichier générés par res,
ou faut-il au besoin les nettoyer à la main ???

*************

Pourrais-tu m'expliquer les autre séquences,
string, icon, mp3, comment les enregistrer à la
main, et avec quoi les lire, quelle commande ???

Bon, ben quand je saurai tout ça, je saurai
enfin me servir de ce p... de fichier :o)

Au plaisir de te lire :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------






"tking" a écrit dans le message de
news:
| LE TROLL avait prétendu :
| > Bonjour,
| >
| > Alors, je fais ça:
| >
| > Sub Command1_Click() ' in ressources
| > Dim nomfic As String
| > nomfic = LoadResString(101)
| > 'le fichier se nomme "Lune.txt" donc
| > nomfic="Lune.txt"
| > ' ensuite ???
| >
| > End Sub
| >
| > Ensuite je fais quoi pour sortir le
contenu du
| > fichier res(id 101), et l'écrire sur le disque
| > sous forme d'un fichier "Lune2.txt". Là, j'ai
le
| > nom sous lequel est stockée la ressource (le
| > fichier Lune.txt), mais ensuite, je fais quoi
pour
| > l'écrire sur le disque dur, car je n'ai que le
| > nom, pas le contenu ???
|
|
|
| Private Sub Command1_Click()
|
|
| Dim ExtFle() As Byte
| ExtFle = LoadResData(101, "CUSTOM")
|
|
| Open "c:test_res.txt" For Binary As #1
|
| Put #1, 1, ExtFle
|
| Close #1
|
| End Sub
|
| '-------------------------------------
|
| Voilà, y'a pas plus simple. L'ID de la ressource
est 101, c'est une
| ressource "CUSTOM" et le contenu COMPLET est
écrit dans un fichier dans
| C:
| Tu peux nommer le fichier comme tu veux. L'appel
se fait avec
| LoadResData.
| .
|
| Si tu veux acceder directement à une donnée dans
passer par un fichier,
| il y a un exemple ici
|
http://www.vbfrance.com/infomsg_LOADRESDATA-DANS-VARIABLE-STRING_562362.aspx
| que je recopie
|
|
'---------------------------------------------------
|
| Function GetResData(ResId, ResType) As String
| Static myArray() As Byte
| Dim a As Long
| On Error Resume Next
| myArray = VB.LoadResData(ResId, ResType)
| If Err.Number = 9 Then Err.Clear
| GetResData = Space$(65536)
| For a = 0 To 65536
| Mid$(GetResData, a + 1, 1) =
Chr$(myArray(a))
| If Err.Number = 9 Then Exit For
| Next a
| End Function
|
|
'----------------------------------------------------
|
| Que tu appeles pour tester avec
|
| MsgBox GetResData(101, "CUSTOM")
|
| Mais tu peux ruser si tu veux acceder à un
élément, avec la fonction
| SPLIT, ce qui donne
|
| Dim ls() As String
| ls() = Split(GetResData(101, "CUSTOM"), vbCrLf)
|
| MsgBox ls(0)
| MsgBox ls(1)
|
| '------------------------
|
| Bien sur, dans l'exemple ci-dessus, le fichier
dans la ressource a au
| moins un saut de ligne, donc deux éléments, le
separateur etant VBCRLF
| (retour à la ligne).
|
|
|
| Bon courage.
|
|