LoadResData dans variable String

Résolu
SkyRocKo Messages postés 174 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 18 février 2006 - 17 sept. 2005 à 22:32
SkyRocKo Messages postés 174 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 18 février 2006 - 24 sept. 2005 à 20:56
Bonsoir à tous,




J'ai intégré à mon project un fichier GIF, je peux si je veux je sauver sur le disque dur comme ceci:






Private Sub Form_Load()



SaveResData 101, "GIF", "C:\MonImage.gif"



End Sub




Sub SaveResData(ByVal ID As Integer, ByVal IDtype, ByVal FilePath As String)


Dim b() As Byte, intFileName As Integer


b = LoadResData(ID, IDtype)


intFileName = FreeFile


Open FilePath For Binary As #intFileName


Put #intFileName, , b


Close #intFileName


End Sub







Cependant, je souhaiterais avoir une fonction du même genre sauf
qu'elle n'enregistre pas les octets dans un fichier mais les renvoie
directement dans un String, par ex :




Private Sub Form_Load()

Dim strBuffer as string



strBuffer = GetResData(101, "GIF")



End Sub




Function GetResData(ByVal ID As Integer, ByVal IDtype) As String

GetResData = CStr(LoadResData(ID, IDtype))

End Sub




Comment rendre cette fonction correcte car je ne comprends pas l'utilisation d'une variable de type Byte



Merci d'avance

3 réponses

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
18 sept. 2005 à 11:19
Salut, ce que tu peux faire c'est tout stocker dans une variable de type : File
ou le stocker dans un Tableau de type Byte
3
SkyRocKo Messages postés 174 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 18 février 2006
24 sept. 2005 à 20:56
Hello,



Je confirme la réponse de cboulas, voici le code pour ceux que ça intéresse



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



Encore merci et bonne continuation



++



SkyRocKo
3
SkyRocKo Messages postés 174 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 18 février 2006
18 sept. 2005 à 13:02
Salut cboulas, merci pour ta réponse



Je regarderai ça bientôt.



Bonne continuation



SkyRocKo
0
Rejoignez-nous