tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルMSFlexGrid表示の高速処理
記事No14956
投稿日: 2010/10/03(Sun) 02:23
投稿者オールドルーキー
環境【VB 6.0・OS WinXP】
スキル【初心者レベル】

お世話になります。先日も別件でご質問させて頂きましたが、VB6.0でloto6予想
プログラムを作成してます。当選データ(csvファイル:517行)をMSFlexGridで
表示させているのですが、意図する動作はしていますが処理時間がかなり
掛かります。(10秒弱)

    Dim intRow As Integer
    Dim intCol As Integer
    Dim intFileID As Integer
    Dim strReadData As String
    Dim strColsData() As String
    Dim colData As New Collection

    intFileID = FreeFile                                'ファイル番号取得
    Open gStrFeaverFullFileName For Input As #intFileID '当選データオープン
    Do Until EOF(intFileID)
        Line Input #intFileID, strReadData              'ファイルから1行読込
        colData.Add (strReadData)                       'データセット
    Loop
    Close #intFileID
    With GrdElection
        For intRow = 0 To colData.Count - 1
            If intRow > 1 Then
                .AddItem " ", .Row + 1
            End If
            .Row = intRow
            .RowHeight(intRow) = 300
            strColsData() = Split(colData.Item(intRow + 1), _
                                               Chr(MOJI_CODE_COMMA))
            For intCol = LBound(strColsData) To UBound(strColsData)
                .Col = intCol
                .ColWidth(intCol) = 1000
                If intRow <> 0 And intCol > ANALYSIS_ARRAY_BOUNUS Then
                    .Text = FormatNumber(strColsData(intCol), 0, True, _
                                         False, TristateTrue)
                Else
                    .CellAlignment = flexAlignCenterCenter
                    .Text = strColsData(intCol)
                End If
            Next
        Next
        '*** カレントセルを反転表示 ***
        .FocusRect = flexFocusNone
        .HighLight = flexHighlightAlways
        '*** ソート(降順) ***
        .Col = 0
        .Sort = 2
    End With
    Set colData = Nothing

以上が問題の処理部分なのでが、色々検証しておりますがどの変が悪いのかなかなか
検討がつかず困っております。
お手数ではございますがご教授お願い致します。

[ツリー表示へ]
タイトルRe: MSFlexGrid表示の高速処理
記事No14957
投稿日: 2010/10/03(Sun) 06:26
投稿者花ちゃん
> プログラムを作成してます。当選データ(csvファイル:517行)をMSFlexGridで
> 表示させているのですが、意図する動作はしていますが処理時間がかなり
> 掛かります。(10秒弱)

ここのMSFlexGrid関係 の データーの読み込み表示を高速にする をご覧ください。

  http://hanatyan.sakura.ne.jp/vbhlp/MSFlexNO6.htm#kousoku

又、件数が多いなら、ADOを使ってCSVファイルを読込 のようにすれば早くなります。

  http://hanatyan.sakura.ne.jp/vbhlp/adotocsv.htm

まずは、データーの読み込み表示を高速にするから試して見て下さい。該当ページに
詳しく解説しておりますのでよくお読み下さい。

[ツリー表示へ]
タイトルRe^2: MSFlexGrid表示の高速処理
記事No14958
投稿日: 2010/10/03(Sun) 10:23
投稿者オールドルーキー
花ちゃん様

早々のご返答誠にありがとう御座います。
該当ページを参考に処理を変更させましたらかなり早く表示できるようになりました。
ありがとう御座いました。

[ツリー表示へ]