Zusatz-Frage / -Problem
Wenn die Multiplikation von Sectors per Cluster, Bytes per Cluster und Number of free Clusters einen Wert > 2.147.483.647 ergibt (also mehr als 2 GB auf dem Laufwerk frei sind), dann stürzt das Ding mit einem Overflow-Error ab. Ich hab dann die Variable für das Ergebnis der Multiplikation als single (statt long) definiert, das müsste doch für grössere Zahlen (bis 10 hoch 38 oder so) reichen, oder? Der Overflow kommt aber trotzdem! Oder liegt es an einer anderen Kleinigkeit, an der ich wieder einmal haarscharf vorbeischaue?
der wahrscheinlich den Wald vor lauter Bäumen (oder die Festplatte vor lauter Bytes oder so *g*) nicht sehende
Roland
Private Declare Function GetDiskFreeSpace Lib „kernel32“ Alias
„GetDiskFreeSpaceA“ (ByVal lpRootPathName As String,
lpSectorsPerCluster As Long, lpBytesPerSector As Long,
lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As
Long) As Long
Private Sub Form_Load()
'KPD-Team 1998
'URL: http://www.allapi.net/
'E-Mail: [email protected]
Dim Sectors as Long,Bytes as Long,FreeC as Long, TotalC as
Long,Total as Long,Freeb as Long
'Retrieve information about the C:\
GetDiskFreeSpace „C:“, Sectors, Bytes, Freec, Totalc
'Set graphic mode to persistent
Me.AutoRedraw = True
'Print the information to the form
Me.Print " Path: C:"
Me.Print " Sectors per Cluster:" + Str$(Sector)
Me.Print " Bytes per sector:" + Str$(Bytes)
Me.Print " Number Of Free Clusters:" + Str$(Freec)
Me.Print " Total Number Of Clusters:" + Str$(Totalc)
Total = rTotalc& * rSector& * rBytes&
Me.Print " Total number of bytes in path:" + Str$(Total)
Freeb = rFreec& * rSector& * rBytes&
Me.Print " Free bytes:" + Str$(Freeb)
End sub