je cherche a faire une routine la plus rapide possible. J'ai pompé la doc mais je me disais que peut etre avec des pointeurs ou je ne sais quelles joyeusetés de PB, on pouvais faire mieux ? :
If ReadFile(0, "d:\quad\1.avi") ; Si le fichier peut être lu , on continue...
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
ReadQuad(0) ; Affiche ligne par ligne le contenu du fichier
Wend
CloseFile(0) ; Ferme le fichier précédemment ouvert
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
http://HexaScrabble.com/ !i!i!i!i!i!i!i!i!i! !i!i!i!i!i!i! !i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti Version de PB : 6.00 - 64 bits
ça me prend 45ms pour un fichier de 20mo.. si tu donnes pas de referents ni sur la taille de ton avi ni sur ton chrono on est mal barré pour comparer. 6983ms pour un fichier de 688mo
Je trouve ça plutôt rapide
DisableDebugger
start = ElapsedMilliseconds()
If ReadFile(0, "G:\CLIP\Eddy de Pretto - Fête de trop (Clip Officiel) [720p].mp4") ; Si le fichier peut être lu , on continue...
While Eof(0) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
ReadQuad(0) ; Affiche ligne par ligne le contenu du fichier
Wend
t = ElapsedMilliseconds()-start
MessageRequester("t",Str(t))
CloseFile(0) ; Ferme le fichier précédemment ouvert
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
DisableDebugger
; Ce test crée un fichier dont la taille est un multiple de 8, il faudra donc penser à adapter le code
; Création d'un fichier pour le test, prendra un certain temps, soyez patient.
If CreateFile(0, "c:\test.txt")
For a=0 To 99999999 ; ecriture d'un fichier de (781250 ko soit lus de 781Mo)
WriteQuad(0,a)
Next a
CloseFile(0)
EndIf
start = ElapsedMilliseconds()
Dim tableau.q(0)
If ReadFile(1, "c:\test.txt") ; Si le fichier peut être lu , on continue...
longueur=(Lof(1)/8)-1
ReDim tableau(longueur)
ReadData(1, @tableau(), Lof(1))
; Affectation quasi instantanée, soit un tiers de seconde!!!
; ces lignes ne servent que pour vérifier éventuellement le contenu
; For a=0 To 10 ;que les 10 premiers sinon mettre la variable longueur
; Debug tableau(a)
; Next a
CloseFile(1)
t = ElapsedMilliseconds()-start
MessageRequester("t",Str(t))
Else
MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf