En nyttig funktion som konventerar en filstorlek (i byte) till kB, MB och GB. Exempelvis:
3629180 blir 3,4 MB
Man kan givetvis ställa hur många decimaler man vill ha. Väljer man exempelvis 4 st, blir det ju:
3,4610 MB
Originalproggat i basic av Pace.
Fel kan diskuteras här
filstorlek = 3629180
Response.Write convFileSize(filstorlek, 1)
'********************************************************************
' ConvFileSize: Konventerar filstorlek (i byte) till kB, MB och GB.
'********************************************************************
Function ConvFileSize (FileSize, Decimaler)
Dim DotPos, strFileSize
FileSize = cDbl(FileSize)
' Gigabytes.
If FileSize >= 1048576000 Then
strFileSize = cStr(cSng(FileSize / 1048576000))
DotPos = Instr(strFileSize, ",")
IF DotPos THEN
IF Decimaler = 0 THEN Decimaler = -1
strFileSize = MID(strFileSize, 1, DotPos + Decimaler)
END IF
strFileSize = strFileSize + " GB"
' Megabytes.
ElseIf FileSize >= 1048576 THEN
strFileSize = cStr(cSng(FileSize / 1048576))
DotPos = Instr(strFileSize, ",")
IF DotPos THEN
IF Decimaler = 0 THEN Decimaler = -1
strFileSize = MID(strFileSize, 1, DotPos + Decimaler)
END IF
strFileSize = strFileSize + " MB"
' Kilboytes.
ElseIf FileSize >= 1024 THEN
strFileSize = cStr(cSng(FileSize / 1024))
DotPos = InStr(strFileSize, ",")
IF DotPos THEN
IF Decimaler = 0 THEN Decimaler = -1
strFileSize = MID(strFileSize, 1, DotPos + Decimaler)
END IF
strFileSize = strFileSize + " kB"
' Bytes.
Else
IF FileSize > 1 THEN
strFileSize = cStr(Int(FileSize)) + " bytes"
ELSE
strFileSize = cStr(Int(FileSize)) + " byte"
END IF
END IF
ConvFileSize = Trim(strFileSize)
End Function
------------------
Peter D
[Redigerat av Pace den 06 aug 2001]