tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルエクセル高速読み込み
記事No13196
投稿日: 2008/11/05(Wed) 11:26
投稿者NK
エクセルにデータを保存して、グラフ表示させているのですがデータが増えてくるとリアルタイムで表示されません。(数秒遅れて表示されます)
なにか高速で読めるいい方法はありますか?


With CommonDialog1
            fileName = "fortorquegraph.csv"
            fileNo = FreeFile()
            Open fileName For Append As #1
            Lock #1
            Print #1, saveang;
            Print #1, ",";
            Print #1, savetrq
            Unlock #1
            Close #1

        End With

    With CommonDialog1
        Open fileName For Input As #1
        Lock #1
        Do While Not EOF(1)
        'Line Input #1, CsvD
        Input #1, CsvD, CsvDD
        Dcount = Dcount + 1
        Loop
        Unlock #1
        Close #1
    
        MSChart1.RowCount = Dcount
    
        Open fileName For Input As #1
        For i = 1 To MSChart1.RowCount
            'Line Input #1, CsvD ,CsvDD
            Input #1, CsvD, CsvDD
            intDat(i, 0) = CsvD
            intDat(i, 1) = CsvDD
            MSChart1.ChartData = intDat()
        Next i
        Close #1
    End With

[ツリー表示へ]
タイトルRe: エクセル高速読み込み
記事No13197
投稿日: 2008/11/05(Wed) 12:16
投稿者ダンボ
データを読んでは表示、読んでは表示していたら遅くなって当然です。
>             MSChart1.ChartData = intDat()
をループの外に出すだけで、十分速くなるでしょう。

経過をアニメーションで見せたいというのならば、データ読み込みだけを
別配列に読ませておいて、後でループ内でintDat(i, 0)、intDat(i, 1)に
書き込んでやればいいんでないの。

それでも遅いというなら、それはファイルI/OではなくMSChartの処理能力
ということで別の話に。

[ツリー表示へ]