VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/01/18(Sat) 01:17
投稿者mitu
Eメール
URL
タイトル処理速度

以下のような構造体をもっています。

Type MYDATA
   Data  As Long
   Flag1 As Long
   Flag2 As Long
   Flag3 As Long
   Flag4 As Long
   Flag5 As Long
   Flag6 As Long
   Flag7 As Long
   Flag8 As Long
End Type

Type OPETABLE
   FTime     As Long
   DTime     As Long
   OpeData() As MYDATA
End Type

これに、以下のようにして、データを入れています。

Dim OpeInfo() As OPETABLE
Dim dlist()   As Byte

Redim OpeInfo(20000)

myp = 8 + 16 * 12
Redim dlist((20000 * myp) - 1)


For i = 0 To 20000
   With OpeInfo(i)
      .DTime = myDtime(i)   'myDtime は Long型
      .FTime = myFtime(i)   'myFtime は Long型
    
      Redim .OpeData(15)
      For j = 0 To 15
         With .OpeData(j)

      'Byte型からLong型への変換処理(ByteToLng)をして格納
            .Data = ByteToLng(dlist((i * myp) + (j * 12) + 8), _
                              dlist((i * myp) + (j * 12) + 9), _
                              dlist((i * myp) + (j * 12) + 10), _
                              dlist((i * myp) + (j * 12) + 11))
            .Flag1 = dlist((i * myp) + (j * 12) + 12)
            .Flag2 = dlist((i * myp) + (j * 12) + 13)
            .Flag3 = dlist((i * myp) + (j * 12) + 14)
            .Flag4 = dlist((i * myp) + (j * 12) + 15)
            .Flag5 = dlist((i * myp) + (j * 12) + 16)
            .Flag6 = dlist((i * myp) + (j * 12) + 17)
            .Flag7 = dlist((i * myp) + (j * 12) + 18)
            .Flag8 = dlist((i * myp) + (j * 12) + 19)
         End With
      Next j
   End With
Next i

配列要素の20000と15は可変長です。
この処理だと、大体7,8秒かかってしまいます。
どなたか処理速度が速くなる方法がありましたら、宜しくお願いします。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -