Dans mon cas il est 22h00 !!
Voiçi un petit exemple sur différentes méthodes pour sauvegarder une liste de vertices sur fichier binaire. Moi les 3 méthodes donnent le même temps.
À toi de voir ce que ca donne
A+
Guimauve
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; CODE GÉNÉRÉ AUTOMATIQUEMENT, NE PAS MODIFIER À
; MOINS D'AVOIR UNE RAISON TRÈS TRÈS VALABLE !!!
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure >>>>>
Structure Vertex
x.f
y.f
z.f
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les mutateurs >>>>>
Macro SetVertexx(ObjetA, P_x)
ObjetA\x = P_x
EndMacro
Macro SetVertexy(ObjetA, P_y)
ObjetA\y = P_y
EndMacro
Macro SetVertexz(ObjetA, P_z)
ObjetA\z = P_z
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les observateurs >>>>>
Macro GetVertexx(ObjetA)
ObjetA\x
EndMacro
Macro GetVertexy(ObjetA)
ObjetA\y
EndMacro
Macro GetVertexz(ObjetA)
ObjetA\z
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Update >>>>>
Macro UpdateVertex(ObjetA, P_x, P_y, P_z)
SetVertexx(ObjetA, P_x)
SetVertexy(ObjetA, P_y)
SetVertexz(ObjetA, P_z)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Lecture fichier Binaire >>>>>
Macro ReadVertex(FileID, ObjetA)
ReadData(FileID, ObjetA, 12)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Écriture fichier Binaire >>>>>
Macro WriteVertex(FileID, ObjetA)
WriteData(FileID, ObjetA, 12)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 31 ms <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Macro CountArray(array)
PeekL(@array - 8)
EndMacro
Procedure SaveVertexList(FileID, FileName.s, List.Vertex())
If CreateFile(FileID, FileName)
ForEach List()
WriteVertex(FileID, List())
Next
CloseFile(FileID)
EndIf
EndProcedure
Procedure SaveVertexArray(FileID, FileName.s, Array.Vertex(1))
If CreateFile(FileID, FileName)
LastIndex = CountArray(Array())
For Index = 0 To LastIndex
WriteVertex(FileID, Array(Index))
Next
CloseFile(FileID)
EndIf
EndProcedure
Procedure QuickSaveVertexArray(FileID, FileName.s, Array.Vertex(1))
If CreateFile(FileID, FileName)
WriteData(FileID, @Array(), 12 * CountArray(Array()))
CloseFile(FileID)
EndIf
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
#Meridian = 120
#Parallele = 120
NbSommet=2+((#Meridian+1)*#Parallele)
Dim Sommets.Vertex(NbSommet-1)
NewList ListSommets.Vertex()
For i=0 To #Meridian
theta.f =i*3.14159*2.0/#Meridian
ctheta.f=Cos(theta)
stheta.f=Sin(theta)
For j=1 To #Parallele
Alpha.f =j*3.14159/(#Parallele+1)
calpha.f =Cos(Alpha)
salpha.f=Sin(Alpha)
Index = (i*#Parallele) + (j-1)
UpdateVertex(Sommets(Index), salpha*ctheta, salpha*stheta, calpha)
AddElement(ListSommets())
UpdateVertex(ListSommets(), salpha*ctheta, salpha*stheta, calpha)
Next j
Next i
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Début du test
TempsDepartSaveVertexList = ElapsedMilliseconds()
SaveVertexList(0, "SaveVertexList.data", ListSommets())
TempsSaveVertexList = ElapsedMilliseconds()-TempsDepartSaveVertexList
TempsDepartSaveVertexArray = ElapsedMilliseconds()
SaveVertexArray(1, "SaveVertexArray.data", Sommets())
TempsSaveVertexArray = ElapsedMilliseconds()-TempsDepartSaveVertexArray
TempsDepartQuickSaveVertexArray = ElapsedMilliseconds()
QuickSaveVertexArray(2, "QuickSaveVertexArray.data", Sommets())
TempsQuickSaveVertexArray = ElapsedMilliseconds()-TempsDepartQuickSaveVertexArray
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Résultat du test
message.s = "Le temps pour SaveVertexList : " + Str(TempsSaveVertexList) + " ms" + Chr(13) + Chr(10)
message.s + "Le temps pour SaveVertexArray: " + Str(TempsSaveVertexList) + " ms" + Chr(13) + Chr(10)
message.s + "Le temps pour QuickSaveVertexArray : " + Str(TempsSaveVertexList) + " ms" + Chr(13) + Chr(10)
message.s + "Il y a " + Str(NbSommet) + " vertice à écrire dans les fichiers"
MessageRequester("Test de Sauvegarde", message)
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<