投稿時間: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秒かかってしまいます。 どなたか処理速度が速くなる方法がありましたら、宜しくお願いします。
|