「トップページ/VB6/SAMPLE」の編集履歴(バックアップ)一覧はこちら

トップページ/VB6/SAMPLE」(2011/04/06 (水) 13:59:21) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

|&big(){サンプルコード}| #contents() ---- *空の配列 C#でいうところの、nullが入った状態のことである。 基本的にVB6では、空っぽの配列を作成することはできない。 しかし、偉大な先人達が、いくつかの方法を見つけている。 -null?を入れておく方法 VB6にはnullなどないので、それに変わる方法を使う。 いちおうmsdnにも記載されているらしいが、かなり裏技っぽい 'Variant型の空の配列を作る Dim arr() As Variant arr = Array() '空っぽの判定 On Error Resume Next If (UBound(arr)) Then Debug.Print "配列は空っぽ" End If 'String型の空の配列を作る Dim StringArray() As String StringArray = Split("") 'Byte型の空の配列を作る Dim ByteArray() As Byte ByteArray = "" 'Object型の空の配列を作る Dim ObjectArray() As Object Call IsArray(ObjectArray) -APIを使う方法 Private Declare Function SafeArrayAllocDescriptor Lib "oleaut32" ( _ ByVal cDims As Long, ByRef ppsaOut() As Any) As Long Private Declare Sub GetMem4 Lib "msvbvm60" ( _ ByVal ptr As Long, ByRef ret As Long) -「常に目的のサイズ+1とし、サイズが1を空とみなす方法」 自分的には、読みやすさも考えて、これが好ましいと考える。 Dim arr() As Integer ReDim arr(0) '空っぽの判定(本当は要素数1である) If (UBound(arr) = 0) Then '... End If '要素数を5に変更(本当は要素数6になる) ReDim arr(5) 'ループ処理(cntは0~4の値となる) Dim cnt As Integer For cnt = 0 To UBound(arr) - 1 '... Next cnt '末尾に要素を追加 ReDim Preserve arr(UBound(arr) + 1) arr(UBound(arr) - 1) = 0 ---- *ビット演算 -指定位置のバイトを取り出す 'source:取り出し元 / destination:取り出したデータ Dim source as Long, destination as Long '最下位バイトを取り出す dest = src & 0xff destination = source And &HFF& '2バイト目を取り出す dest = (src >> 8) & 0xff destination = (source / &H100) And &HFF& '3バイト目を取り出す dest = (src >> 16) & 0xff destination = (source / &H10000) And &HFF& '最下位バイトを取り出す dest = (src >> 24) & 0xff destination = (source / &H1000000) And &HFF& ---- *ファイル Dim fno as Integer, str As String fno = FreeFile Open "c:\sample.txt" For Input As #fno Line Input #fno, str Close #fno
|&big(){サンプルコード}| #contents() ---- *自己再起動 If Not (0 = Shell(App.Path & "\" & App.EXEName)) Then End ---- *空の配列 C#でいうところの、nullが入った状態のことである。 基本的にVB6では、空っぽの配列を作成することはできない。 しかし、偉大な先人達が、いくつかの方法を見つけている。 -null?を入れておく方法 VB6にはnullなどないので、それに変わる方法を使う。 いちおうmsdnにも記載されているらしいが、かなり裏技っぽい 'Variant型の空の配列を作る Dim arr() As Variant arr = Array() '空っぽの判定 On Error Resume Next If (UBound(arr)) Then Debug.Print "配列は空っぽ" End If 'String型の空の配列を作る Dim StringArray() As String StringArray = Split("") 'Byte型の空の配列を作る Dim ByteArray() As Byte ByteArray = "" 'Object型の空の配列を作る Dim ObjectArray() As Object Call IsArray(ObjectArray) -APIを使う方法 Private Declare Function SafeArrayAllocDescriptor Lib "oleaut32" ( _ ByVal cDims As Long, ByRef ppsaOut() As Any) As Long Private Declare Sub GetMem4 Lib "msvbvm60" ( _ ByVal ptr As Long, ByRef ret As Long) -「常に目的のサイズ+1とし、サイズが1を空とみなす方法」 自分的には、読みやすさも考えて、これが好ましいと考える。 Dim arr() As Integer ReDim arr(0) '空っぽの判定(本当は要素数1である) If (UBound(arr) = 0) Then '... End If '要素数を5に変更(本当は要素数6になる) ReDim arr(5) 'ループ処理(cntは0~4の値となる) Dim cnt As Integer For cnt = 0 To UBound(arr) - 1 '... Next cnt '末尾に要素を追加 ReDim Preserve arr(UBound(arr) + 1) arr(UBound(arr) - 1) = 0 ---- *ビット演算 -指定位置のバイトを取り出す 'source:取り出し元 / destination:取り出したデータ Dim source as Long, destination as Long '最下位バイトを取り出す dest = src & 0xff destination = source And &HFF& '2バイト目を取り出す dest = (src >> 8) & 0xff destination = (source / &H100) And &HFF& '3バイト目を取り出す dest = (src >> 16) & 0xff destination = (source / &H10000) And &HFF& '最下位バイトを取り出す dest = (src >> 24) & 0xff destination = (source / &H1000000) And &HFF& ---- *ファイル Dim fno as Integer, str As String fno = FreeFile Open "c:\sample.txt" For Input As #fno Line Input #fno, str Close #fno

表示オプション

横に並べて表示:
変化行の前後のみ表示: