cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012
-
10 août 2004 à 17:08
cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012
-
11 août 2004 à 03:46
Bonjour/soir,
J'ai 2 fichiers:
1) "phrases.txt" créé avec ce code:
'---
Open App.Path & "\phrases.txt" For Output As #1
Print #1, "Ce site est génial"
Print #1, "Tout le monde s'entraide"
Print #1, "Les réponses viennent rapidement"
Close #1
'---
2) "codessources.jpg" dont le contenu est stocké dans une variable:
'---
Dim Buffer As String
Open App.Path & "\codessources.jpg" For Binary As #2
Buffer = Space(LOF(2))
Get #2, , Buffer
Close #2
'---
Je me retrouve donc avec une variable (contenu d'une image) et d'un fichier texte.
Je veux concaténer les fichiers:
'---
Dim MonTexte As String
Open App.Path & "\phrases.txt" For Binary As #3
MonTexte = Space(LOF(3))
Get #3, , MonTexte
Close #3
Dim ContenuTotal As String
ContenuTotal = MonTexte & Buffer
Open App.Path & "\imagetexte.pack" For Binary As #4
Put #4, , ContenuTotal
Close #4
'---
J'obtiens donc un fichier (*.pack) qui contient d'abord mon texte puis mon image. Je supprime toutes les lignes correspondant au fichier texte et je sauvegarde, (il ne reste alors que le contenu du fichier image, vous me suivez ?)
J'effectue alors une comparaison hexadécimal des fichiers "codessources.jpg" et "imagetexte.pack" : il y a plein de différences mais toutes identiques: l'octet "00" a été remplacé par l'octet "20". L'image n'est donc pas valide.
Comment concaténer un fichier texte à une image sans modifier des octets de l'image ?
cs_rene38
Messages postés1858Date d'inscriptionsamedi 29 juin 2002StatutMembreDernière intervention17 octobre 201311 11 août 2004 à 02:39
Salut
Dim buffer As String, MonTexte As String, ContenuTotal As String
'écriture du fichier texte
Open "H:\essai\phrases.txt" For Output As #1
Print #1, "Ce site est génial"
Print #1, "Tout le monde s'entraide"
Print #1, "Les réponses viennent rapidement"
Close 1
'lecture du fichier .jpg
Open "H:\essai\codessources.jpg" For Binary As #2
buffer = String(LOF(2), 0)
Get #2, , buffer
Close 2
'lecture du fichier texte
Open "h:\essai\phrases.txt" For Binary As #3
MonTexte = String(LOF(3), 0)
Get #3, , MonTexte
MonTexte = Left(MonTexte, Len(MonTexte) - 2)
'Suppression du vbCrLf en fin de fichier
Close 3
'écriture du fichier combiné
Open "h:\essai\imagetexte.pack" For Binary As #4
ContenuTotal = MonTexte & buffer
Put #4, , ContenuTotal
Close 4
'lecture du fichier combiné
Open "h:\essai\imagetexte.pack" For Binary As #5
buffer = String(LOF(5), 0)
Get 5, , buffer
'suppression du texte (Le texte tient 78 octets)
buffer = Mid(buffer, 79)
Close 5
'écriture du fichier .jpg
Open "h:\essai\image.jpg" For Binary As #6
Put 6, , buffer
Close 6
cs_Tibabou
Messages postés129Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention 7 juillet 2012 11 août 2004 à 03:46
MERCI BEAUCOUP !
Cependant je remarque juste que quand je fais la suppression du texte manuellement dans le *.pack, le fichier image n'est pas valide.
Mon hypothèse:
Quand j'ouvre le *.pack dans le bloc-notes, il remplace les caractères "null" par des espaces, ensuite je supprime le texte puis j'enregistre (!). C'est donc à l'enregistrement que ça déconne.
C'est un truc dans le genre ?
Encore merci: les phrases de mon fichier texte sont donc justes ;-)
Tibabou