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

投稿日: 2002/09/03(Tue) 11:45
投稿者A221
Eメール
URL
タイトルRe^3: ファイルの表示方法(再)

ひとつの考え方としては
1.番号 ・ 左からファイル名11文字分 を持った上位配列
(重複のないこと)
2.(ファイル名から導出された上位配列の)番号・ファイル名 を持った配列

を用意して「2.番号・ファイル名 を持った配列」への代入時に
重複がないかをチェックしながら
「1.番号 ・ 左からファイル名11文字分 を持った上位配列」を作り、
リストへ「上位配列」の追加を行います。

で、リストクリック時に「番号」を元に下位配列を比較します。


下記、走らせてないので動作の保証はしません。
--------------------------------------------------------------------------
Option Explicit

Private Const Mpath = "C:\DATA\"
Private kakutyosi As String
Private NGNumber As String
Private Nowdate As String

Private Type Filechk
    index As Long
    Name As String
End Type

Private filekensaku As Integer

Private strMyfile() As Filechk
Private stackPath() As Filechk

Private stackPathCount As Long

Private Sub Command1_Click()
Dim strtextFile As String
Dim i As Integer

stackPathCount = 0
Nowdate = Format$(Date, "yyyy-mm-dd")
kakutyosi = "TxT"

strtextFile = Dir$(Mpath & Nowdate & "\*.*")

Do While strtextFile <> ""
    If StrComp(Right$(strtextFile, 3), kakutyosi, 1) = 0 Then
        filekensaku = filekensaku + 1
        ReDim Preserve strMyfile(filekensaku)
        strMyfile(filekensaku).Name = strtextFile

        i = 0
        Do
            If stackPath(i).Name = letf(strMyfile(filekensaku).Name, 11) Then
                strMyfile(filekensaku).index = stackPath(i).index
            End If
            i = i + 1
        Loop Until i > stackPathCount

        If i > stackPathCount Then
            stackPathCount = stackPathCount + 1
            ReDim Preserve stackPath(stackPathCount)
            stackPath(stackPathCount).index = stackPathCount
            stackPath(stackPathCount).Name = letf(strMyfile(filekensaku).Name, 11)
            strMyfile(filekensaku).index = stackPathCount
        End If

    End If
    strtextFile = Dir$
Loop

For i = 0 To stackPathCount
    List1.AddItem stackPath(stackPathCount).Name
Next i
End Sub

Private Sub List1_Click()
Dim i As Long
Dim index As Long

index = List1.ListIndex
List2.Clear

For i = 0 To filekensaku
    If stackPath(index).index = strMyfile(i).index Then
        List2.AddItem Right$(strMyfile(i).Name, 11)
    End If
End Sub


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

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

- Web Forum -