tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
画像を作成日時順に読み込みピクチャーボックスに表示(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2009/12/27 13:31
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[応用コード][ファイル][リストボックス]                              *
* キーワード:指定のファイル,作成日時順に並べ替え,ディレクトリー内,読み込み,,     *
***********************************************************************************

元質問:画像を読み込みピクチャーボックスに表示 - hou 2003/02/16-10:26 No.2742

1.画像は、作成時間の新しい順に20枚のみ表示させる。
2.作成フォームの大きさで起動する。(例を実行すると最大化で起動する)

-------------------------------------------------------------------------------
Re^2: 画像を読み込みピクチャーボックスに.. - 花ちゃん 2003/02/16-14:05 No.2745
-------------------------------------------------------------------------------

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





 [スレッド一覧へ] [親スレッドへ]