Récupérer les octets d'un fichier de gauche à droite
Publié : sam. 05/août/2017 15:41
Bonjour à tous,
Dans certain cas il est nécessaire de pouvoir lire dans un fichier un certain nombre d'octets de gauche à droite.
Exemple avec un fichier MIDI.
L'entête du fichier est la suivante "4D546864" ou "MThd" en caractères, si par exemple vous utilisé
Vous constaterez que le résultat est inversé.
Voici une exemple avec une procédure qui vous donnera le résultat attendu.
Dans certain cas il est nécessaire de pouvoir lire dans un fichier un certain nombre d'octets de gauche à droite.
Exemple avec un fichier MIDI.
L'entête du fichier est la suivante "4D546864" ou "MThd" en caractères, si par exemple vous utilisé
Code : Tout sélectionner
Hex(ReadLong(0)) ; donne 6468544D
Voici une exemple avec une procédure qui vous donnera le résultat attendu.
Code : Tout sélectionner
; Create file for testing
CreateFile(0,"Test.txt")
; write some values for testing
WriteByte(0,$4D)
WriteByte(0,$54)
WriteByte(0,$68)
WriteByte(0,$64)
CloseFile(0)
OpenFile(0,"Test.txt")
; I read a long (4 octeds), look the result
; The result is wrong it is inverted.
Debug "The result is wrong it is inverted."
Debug Hex(ReadLong(0))
CloseFile(0)
Procedure ReadOcteds(IdFile,NumberOcteds,*Variable)
Protected v.l,i,p=NumberOcteds
For i=1 To NumberOcteds
p-1
v=ReadByte(IdFile)
MoveMemory(@v,*Variable+p,1)
Next
EndProcedure
Define test.l
OpenFile(0,"Test.txt")
ReadOcteds(0,4,@test)
CloseFile(0)
Debug "The result is correct."
Debug Hex(test)