Débit Réseau
Publié : mar. 07/juin/2005 21:48
Ce code necessite ma lib ( Droopy Lib )
La première fois que vous lancerez le programme,
il vous demandera le fichier source et le fichier de destination.
( Ces paramètres sont stockés dans le répertoire de lancement de l'exe dans un fichier INI )
[img]http://purebasic.myftp.org/files/67/Déb ... Réseau.JPG[/img]
Le code source et l'exe sont fournis dans le fichier Zip
DOWNLOAD
La première fois que vous lancerez le programme,
il vous demandera le fichier source et le fichier de destination.
( Ces paramètres sont stockés dans le répertoire de lancement de l'exe dans un fichier INI )
[img]http://purebasic.myftp.org/files/67/Déb ... Réseau.JPG[/img]
Le code source et l'exe sont fournis dans le fichier Zip
DOWNLOAD
Code : Tout sélectionner
; PureBasic 3.93
; Droopy 06/06/05
;{- Constantes
#Moyen=1.5
#Haut=3
#Full=10
#NbDeBarres=44
#TailleFichierMin=100001 ; 1Mo
#TaileLectureEcriture=100000
;}
;{- Si fichier INI absent le créer / Sinon le lire
If FileSize(GetProgramPath()+"Débit Réseau.ini")=-1
Repeat ;/ Si fichier de lecture trop petit on redemande un autre fichier
FichierLecture.s=OpenFileRequester("Fichier Source","","Tous les fichiers|*.*",0)
If FileSize(FichierLecture)<#TailleFichierMin
MessageRequester("Fichier Source trop petit","Min "+Str(#TailleFichierMin)+" octets")
EndIf
Until FileSize(FichierLecture)>#TailleFichierMin
;/ Demande le fichier de destination
FichierEcriture.s=OpenFileRequester("Fichier Destination","","Tous les fichiers|*.*",0)
IniWrite(GetProgramPath()+"Débit Réseau.ini","Config","Lecture",FichierLecture)
IniWrite(GetProgramPath()+"Débit Réseau.ini","Config","Ecriture",FichierEcriture)
Else
;/ Fichier INI absent --> On le créé / Stocke les préférences
FichierLecture.s=IniRead(GetProgramPath()+"Débit Réseau.ini","Config","Lecture")
FichierEcriture.s=IniRead(GetProgramPath()+"Débit Réseau.ini","Config","Ecriture")
EndIf
;}
;{- Source et Destination accessible sinon quitte
If FileSize(FichierLecture)=-1
MessageRequester("Fichier Source manquant",FichierLecture,#MB_ICONERROR)
End
EndIf
If GetDiskFreeSpaceEx(Left(FichierEcriture,2))=0
MessageRequester("Destination inaccessible",Left(FichierEcriture,2),#MB_ICONERROR)
End
EndIf
;}
Enumeration ;- Des Gadgets
#Cadre1
#Cadre2
#Lecture
#Ecriture
#GraphLecture
#GraphEcriture
EndEnumeration
;{- Son début
Son=InitSound()
If Son <>0
CatchSound(0, ?Son)
PlaySound(0,0)
EndIf
;}
;{- Visuel
Handle=OpenWindow(0, 216, 0, 510, 302, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar | #PB_Window_Invisible , "Débit Réseau")
SetWindowsTransparency(Handle,0)
HideWindow(0,0)
CreateGadgetList(WindowID())
TextGadget(#Cadre1, 10, 10, 240, 20, "Lecture",#PB_Text_Center)
TextGadget(#Cadre2, 260, 10, 240, 20, "Ecriture",#PB_Text_Center)
TextGadget(#Lecture, 10, 250, 240, 20, "",#PB_Text_Center )
TextGadget(#Ecriture, 260, 250, 240, 20, "",#PB_Text_Center )
GraphLecture=Graph(20, 30, 220, 200, #NbDeBarres,#Moyen,#Haut,#Full,255,65535,65280,0)
GraphEcriture=Graph(270, 30, 220, 200 ,#NbDeBarres,#Moyen,#Haut,#Full,255,65535,65280,0)
CreateStatusBar(0,WindowID(0))
AddStatusBarField(255)
AddStatusBarField(255)
;/ Fade in
For n= 1 To 255 Step 6
SetWindowsTransparency(WindowID(0),n)
Delay(1)
Next n
;}
*Tampon=AllocateMemory(#TaileLectureEcriture)
Repeat
If totoro>250
totoro=0
;{/ Mesure & Calcul du débit en Lecture
OpenFile(0,FichierLecture)
CreateFile(1,GetEnvironmentVariable("temp")+"\TestDebit.tst")
UseFile(0)
MeasureHiResIntervalStart()
ReadData(*Tampon,#TaileLectureEcriture)
UseFile(1)
WriteData(*Tampon,#TaileLectureEcriture)
TempsDeLecture.f=MeasureHiResIntervalStop()
DebitLecture.f=#TaileLectureEcriture/TempsDeLecture
DebitLecture/1024/1024 ; Converit le débit en Mo / s
CloseFile(0)
CloseFile(1)
DeleteFile(GetEnvironmentVariable("temp")+"\TestDebit.tst")
;}
;{/ Mesure & Calcul du débit en Ecriture
CreateFile(0,FichierEcriture)
MeasureHiResIntervalStart()
WriteData(*Tampon,#TaileLectureEcriture)
TempsEcriture.f=MeasureHiResIntervalStop()
DebitEcriture.f=#TaileLectureEcriture/TempsEcriture
DebitEcriture/1024/1024 ; Converit le débit en Mo / s
CloseFile(0)
DeleteFile(FichierEcriture)
;}
;{/ Ecriture dans les GadgetText
SetGadgetText(#Lecture,StrF(DebitLecture,3)+" Mo/s")
SetGadgetText(#Ecriture,StrF(DebitEcriture,3)+" Mo/s")
;}
;{/ Ecriture dans la Status Bar ( Maj Moyenne )
MoyLecture.f+DebitLecture
MoyEcriture.f+DebitEcriture
NbDeFois+1
temp1.s=" Moyenne Lecture "+StrF((MoyLecture/NbDeFois),2)+" Mo/s"
temp2.s=" Moyenne Ecriture "+StrF((MoyEcriture/NbDeFois),2)+" Mo/s"
StatusBarText(0,0,temp1)
StatusBarText(0,1,temp2)
;}
;{/ Ecriture des Graphs
GraphSet(GraphLecture,DebitLecture)
GraphSet(GraphEcriture,DebitEcriture)
;}
EndIf
Delay(1)
totoro+1
;/ Affichage du nombre d'échantillons dans la barre de titres
SetWindowTitle(0,"Débit Réseau ( "+Str(NbDeFois)+" échantillons )")
a=WindowEvent()
Until a=#PB_Event_CloseWindow
;/ Son fin
If Son <>0
PlaySound(0,0)
EndIf
;{/ On quitte ( Libération des ressources & Fade Out
FreeMemory(*Tampon)
For n= 255 To 0 Step -3
SetWindowsTransparency(Handle,n)
Delay(1)
Next n
;}
DataSection
Son: IncludeBinary "Débit Réseau.wav"
EndDataSection