Voila donc les deux fonctions intéressées (que j'ai mises dans un fichier que j'ai appellé file.pb pour les tests)
Code : Tout sélectionner
Procedure fwrite(buffer.l, size.b, count.b, file.l)
If buffer=0 Or count<1 Or size<1 Or UseFile(file)=0
ProcedureReturn 0
EndIf
WriteData(buffer, size*count)
ProcedureReturn 1
EndProcedure
Procedure fread(buffer.l, size.b, count.b, file.l)
If buffer=0 Or count<1 Or size<1 Or UseFile(file)=0
ProcedureReturn 0
EndIf
If Lof()-Loc()<(size*count)
ProcedureReturn 0
EndIf
ReadData(buffer, size*count)
ProcedureReturn 1
EndProcedure
Code : Tout sélectionner
IncludeFile("file.pb")
Structure bidon
long.l
word.w
byte.b
EndStructure
tabsize = 5
Dim tab.bidon(tabsize-1)
;en C "bidon tab[tabsize];" irai de 0 à tabsize-1
;on rempli le tableau pour avoir des données
For i=0 To tabsize-1
tab(i)\long = 4 * i
tab(i)\word = 2 * i
tab(i)\byte = 1 * i
Next i
If OpenFile(0, "bidon.dat")
fwrite(@tab(0), SizeOf(bidon), tabsize, 0)
CloseFile(0)
EndIf
;on prend soin de garder le résultat histoire de comparer
For i=0 To tabsize-1
Debug tab(i)\long
Debug tab(i)\word
Debug tab(i)\byte
Debug " "
Next i
Code : Tout sélectionner
IncludeFile("file.pb")
Structure bidon
long.l
word.w
byte.b
EndStructure
tabsize = 5
Dim tab.bidon(tabsize-1)
;en C "bidon tab[tabsize];" irai de 0 à tabsize-1
;on ne rempli pas le tableau cette fois...
If OpenFile(0, "bidon.dat")
fread(@tab(0), SizeOf(bidon), tabsize, 0)
CloseFile(0)
EndIf
;on peut désormais comparer avec l'écriture
For i=0 To tabsize-1
Debug tab(i)\long
Debug tab(i)\word
Debug tab(i)\byte
Debug " "
Next i
Dri
