Rubrik: Dateisystem · Laufwerke | VB-Versionen: VB4, VB5, VB6 | 23.03.05 |
Harddisk Write/Read Geschwindigkeit ermitteln Dieser Tipp zeigt eine Möglichkeit, wie sich die Schreib- und Lesegeschwindigkeit einer Festplatte ermitteln lässt. | ||
Autor: St. Bühlmann | Bewertung: | Views: 11.607 |
ohne Homepage | System: Win9x, WinNT, Win2k, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nach langem Studieren habe ich eine Möglichkeit gefunden, die Schreib- und Lesegeschwindigkeit einer Festplatte zu ermitteln. Den hierzu ausgetüfftelten Code möchte ich Ihnen nicht vorenthalten
Erstellen Sie ein neues Projekt und platzieren auf die Form zwei Label-Controls (Label1, Label2), sowie einen CommandButton (Command1).
Fügen Sie jetzt nachfolgende Code in den Codeteil der Form ein.
' Schreibgeschwindigkeit ermitteln Public Function GetDriveSpeedWrite(ByVal sDrive As String) As Long Dim i As Long Dim StartTime As Double Dim WriteSpeed As Long Dim F As Integer ' ggf. Backslash anfügen If Right$(sDrive, 1) <> "\" Then sDrive = sDrive & "\" ' Startzeit StartTime = Timer ' Testdatei erstellen F = FreeFile Open sDrive & "DriveSpeedTest.txt" For Output As #F For i = 1 To 512000 Print #F, "X" Next i Close #F ' Schreibgeschwindigkeit ermitteln WriteSpeed = Format((1 / ((Timer - StartTime) * 2)) * 1024000, "0") GetDriveSpeedWrite = WriteSpeed End Function
' Lesegeschwindigkeit ermitteln Public Function GetDriveSpeedRead(ByVal sDrive As String) As Long Dim StartTime As Double Dim ReadSpeed As Long Dim F As Integer Dim sTemp As String ' Ggf. Backslash anfügen If Right$(sDrive, 1) <> "\" Then sDrive = sDrive & "\" ' Startzeit StartTime = Timer ' Testdatei auslesen F = FreeFile Open sDrive & "DriveSpeedTest.txt" For Input As #F Do While Not EOF(F) Line Input #F, sTemp Loop Close #F ' Lesegeschwindigkeit ermitteln ReadSpeed = Val(Format((1 / ((Timer - StartTime) * 2)) * 1024000, "0")) Kill sDrive & "DriveSpeedTest.txt" GetDriveSpeedRead = ReadSpeed End Function
' Hilfsfunktion Public Function FormatSpeed(ByVal nSpeed As Long) As String If nSpeed > 10485760 Then Exit Function If nSpeed > 1048576 Then FormatSpeed = CStr(Round(Int(nSpeed / 104857.6), 0)) & " mb" ElseIf nSpeed > 1024 Then If nSpeed > 102400 Then FormatSpeed = CStr(Round(Int(nSpeed / 10240), 0)) & " kb" Else FormatSpeed = CStr(Round(Int(nSpeed / 1024), 0)) & " kb" End If Else FormatSpeed = CStr(Round(Int(nSpeed / 10.24), 0)) & " byte" End If End Function
Private Sub Command1_Click() ' Schreib-/Lesegeschwindigkeit von Laufwerk c: ermitteln Screen.MousePointer = 11 Label1.Caption = FormatSpeed(GetDriveSpeedWrite("c:")) Label2.Caption = FormatSpeed(GetDriveSpeedRead("c:")) Screen.MousePointer = 0 End Sub