Récuperer images stockée dans une table / champ OLE
-
jeudi 17 mai 2012 11:11
Bonjour ces gens ;-)
J'ai une base de données qui va voyager un peu partout comme applicatif en mode runtime.
J'ai trois images BMP stockées dans une table / champ OLE. L'une doit servir d'icône pour la base et même dans le systray, et les deux autres comme images de bouton bascule.
Puis-je exploiter ces images directement ?
Ou dois-je d'abord les extraire, les enregistrer sur le disque pour les exploiter ?
Dans ce dernier cas, comment faire ?Merci,
Blaise
- Modifié blaise032 jeudi 17 mai 2012 11:12
Toutes les réponses
-
jeudi 17 mai 2012 13:27
Bonjour Blaise,
Il me semble qu'il faut effectivement utiliser une image enregistrer sur le disque.
La solution pour eporter sur disque est dans cette base de données "SaveOLEBitmapToAuto.zip". Elle contient certaines fonctionnalités qui devraient répondre à votre besoin. Pour la télécharger aller à la page suivante : OLEtoDisk
Bonne continuation !
En espérant avoir pu rendre service (MehdiH)
Retrouvez moi sur Office Users -
vendredi 18 mai 2012 14:09
Bonjour MehdiH,
Merci pour la réponse, mais elle ne me convient pas : il faut trimbaler une DLL.
Autant se contenter de quelques images. Je voulais une solution où seule la .MDE pouvait voyager avec reconstruction des images dans son répertoire. Même avec API !
Merci quand même pour l'effort,Blaise
-
samedi 19 mai 2012 16:09
Oyez oyez (pas ole ole ;-) bonnes gens,
Les champs OLE ne sont pas fait pour cela et j'ai trouvé une solution pour contourner ce problème, en vague souvenir d'une conversation lue il y a quelques temps.
1/ Ne pas utiliser de champ OLE, mais MEMO !
2/ Y sauvegarder l'image en HEXA
3/ Y relire le texte, transformer en binaire et le sauvegarder.Çà fonctionne nickel !
Dim iFile As Integer Dim lI As Long Dim b As Byte Dim sNF As String, sS As String iFile = FreeFile sNF = "Nom du fichier à lire" Open sNF For Binary Access Read As #iFile Do While Not EOF(iFile) ' lecture du fichier octet (byte) par octet Get #iFile, , b sS = sS & Format(Hex(b), "@@") ' écriture sur deux caractères Loop Close iFile = FreeFile sNF = "Nom du fichier à écrire" Open sNF For Binary Access Write As #iFile For lI = 1 To Len(sS) Step 2 b = "&h" & Trim(Mid(sS, lI, 2)) 'convertit l'hexa en "binaire" Put #iFile, , b 'écriture dans le fichier Next lI Close
- Marqué comme réponse blaise032 samedi 19 mai 2012 16:42
-
dimanche 20 mai 2012 12:07Merci pour le retour Blaise
En espérant avoir pu rendre service (MehdiH)
Retrouvez moi sur Office Users

