Bonjour.
■ Les grandes lignes de mon application.
- Je code une application qui mémorise dans une map le contenu de fichiers que je sélectionne.
- Un des éléments de la structure de cette map est un buffer alphanumérique qui mémorise le contenu d'un fichier.
- Quand on quitte mon application, cette map est mémorisée dans un fichier JSON pour traitement ultérieur.
- Le code est compilé sans l'option unicode.
■ Le souci que je rencontre.
Quand je sélectionne cette map, les fichiers sont reconstitués dans un dossier cache de mon application.
Le souci est que les fichiers du type images (PNG, JPG, .....) ne s'affichent pas bien qu'ayant la taille d'origine.
J'ai isolé la manière dont je procède dans ce petit code qui va vous permettre de choisir un ficher qui sera lu et automatiquement crée à nouveau afin de voir le résultat. Le fichier ainsi crée se nommera "dummy" suivit de l'extension du fichier d'origine. Merci d'avance pour votre aide.
Code : Tout sélectionner
EnableExplicit
Global File.s, FileExt.s, Buffer.s, length, bytes, *MemoryID
;Choix du fichier à lire
file = OpenFileRequester("Choisissez un fichier", "", "", 0)
;Mémorisation de l'extension du fichier
FileExt = GetExtensionPart(file)
If file <> ""
If ReadFile(0, file)
;Init zone mémoire
length = Lof(0)
*MemoryID = AllocateMemory(length)
;Lecture du fichier
If *MemoryID
bytes = ReadData(0, *MemoryID, length)
Debug "Nombre de bytes lus: " + Str(bytes)
Buffer = PeekS(*MemoryID, bytes)
EndIf
CloseFile(0)
;Test : Creation du fichier pour voir si résultat identique
*MemoryID = AllocateMemory(bytes)
PokeS(*MemoryID, Buffer, bytes)
CreateFile(0, "dummy." + FileExt)
WriteData(0, *MemoryID, bytes)
CloseFile(0)
EndIf
EndIf