玄関へお回り下さい。
バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する    (SNo.117)
使用コントロール Button1  
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
 
★ バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する
 
'バイト数(数値)を単位変換(バイト・KB・MB・GB 付きの文字列)するAPI関数の宣言
Private Declare Function StrFormatByteSize64A Lib "SHLWAPI.DLL" ( _
    ByVal qdw As Int64, ByVal pszBuf As StringByVal uiBufSize As IntegerAs Integer
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
    Debug.WriteLine(fGetFormatByteSize(1023))       '結果  1023 バイト
    Debug.WriteLine(fGetFormatByteSize(1024))       '結果  1.00 KB
    Debug.WriteLine(fGetFormatByteSize(1048576))    '結果  1.00 MB
    Debug.WriteLine(fGetFormatByteSize(2400016))    '結果  2.28 MB
    Debug.WriteLine(fGetFormatByteSize(6000000000)) '結果  5.58 GB
End Sub

'バイト数(数値)を自動単位変換(バイト・KB・MB・GB 付きの文字列)する自作関数
Private Function fGetFormatByteSize(ByVal myFileSize As DecimalAs String
    Dim Ret As Integer
    Dim Buf As String
    Buf = New String(ControlChars.NullChar, 64)
    Ret = StrFormatByteSize64A(myFileSize, Buf, Buf.Length)
    Return Buf.TrimEnd(ControlChars.NullChar)
End Function
 
StrFormatByteSize 関数でも同様に変換できる事は知っていたのですが2GBまでだったので、自作したのを使っていたのですが、StrFormatByteSize64A API関数を知り、VB6.0 で試したらうまく取得できたので .NET でも試して見ました。
この関数は、IE5.0 以降がインストールされている必要があります。





2004/05/25
2005/10/21


VBレスキュー(花ちゃん)
VB.NET2003  VB2005