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

投稿日: 2003/02/16(Sun) 14:05
投稿者花ちゃん
Eメール
URL
タイトルRe^2: 画像を読み込みピクチャーボックスに表示

> 1.画像は、作成時間の新しい順に20枚のみ表示させる。

ListBox のSorted プロパティを利用した方法をこちらが理解できたら
並べ替えはここのソートプログラムを利用して作成して見て下さい。

Private Sub Command1_Click()
    Dim strFilDay      As String
    Dim strFileTime    As String
    Dim strFolderName  As String
    Dim TempFile       As String
    Dim Kakutyousi     As String
    Dim Target         As String
    Dim KPos           As Integer
    '取得したいファイルの拡張子を指定
    Target = ".BMP.JPG.JPEG.WMF.EMF.ICO.GIF.PNG"
    strFolderName = "c:\windows\"
    'ディレクトリー内の全ファイル・フォルダを読み込む
    'TempFile = Dir$(strFolderName, vbDirectory Or vbHidden Or vbSystem)
    TempFile = Dir$(strFolderName & "*.*")  'ファイルだけならこちらでも
    'TempFile が空になるまで繰り返し
    Do While TempFile <> ""
        KPos = InStr(TempFile, ".")
        If KPos > 1 Then
            '拡張子を取得
            Kakutyousi = Mid$(TempFile, KPos, Len(TempFile) - KPos + 1)
            '指定の拡張子照合(大文字小文字を区別しないで)
            If InStr(1, Target, Kakutyousi, vbTextCompare) > 0 Then
                'ファイルをファイルリストボックスから読込んでもOKです。
                strFileTime = FileDateTime(strFolderName & TempFile)
                If Len(strFileTime) <= 11 Then
                    strFileTime = strFileTime & " 00:00:00"
                End If
                strFilDay = Left$(strFileTime, 11)
                strFileTime = Mid$(strFileTime, 12, Len(strFileTime) - 11)
                '9時までの場合0を付加(Sortの時の桁揃え用)
                If Len(Trim$(strFileTime)) <= 7 Then
                    strFileTime = "0" & strFileTime
                End If
                List1.AddItem strFilDay & strFileTime & "     " & _
                                       strFolderName & TempFile
            End If
        End If
        TempFile = Dir$        '次のファイル名を読込
    Loop
    'リストボックスからファイルを取り出し
    Dim myFileName(19) As String
    Dim FileCount      As Long
    Dim N              As Integer
    '日付の新しい方から20個を取り出し
    If List1.ListCount > 0 Then
        For FileCount = List1.ListCount - 1 To 0 Step -1
            myFileName(N) = Trim$(Mid$(List1.List(FileCount), 20, _
                                   Len(List1.List(FileCount)) - 19))
            N = N + 1
            If N = 20 Then Exit For
        Next FileCount
    End If
    
    '取り出したファイルを表示
    Dim i As Long
    For i = 0 To 19
        Debug.Print myFileName(i)
    Next i
End Sub
Private Sub Form_Load()
    'List1.Sorted = True   別途プロパティで設定して下さい
    List1.Visible = False
End Sub


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

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

- Web Forum -