投稿日 | : 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