vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem · Laufwerke   |   VB-Versionen: VB4, VB5, VB623.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ühlmannBewertung:  Views:  11.607 
ohne HomepageSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.