[リストへもどる]
一括表示

投稿時間:2003/07/21(Mon) 15:08
投稿者名:エメ
Eメール:
URL :
タイトル:
FileListBoxでの作成日時ソート
こんにちは、はじめまして。
いつも拝見させてもらってます、エメと申します。
監視フォルダに入ってきたデータを作成日時順に実行するのプログラム
を作成中なのですが、作成日時順にソートする方法でつまずいています。

できればFileListBox内のデータを作成日時順にソートしたいのですが、
どうしたらよいのかわかりません。

FileDateTime関数をつかって、配列などの変数内でソートするやりかたも
あるかと思うのですが、なるべく簡単にコーディングしたいのです。

何かいい方法はありますでしょうか?。お願いします。

投稿時間:2003/07/21(Mon) 15:41
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: FileListBoxでの作成日時ソート
> あるかと思うのですが、なるべく簡単にコーディングしたいのです。
> 何かいい方法はありますでしょうか?。お願いします。

どの程度が簡単で、いい方法なのか判りませんが、少なくてもプロパティや
メソッドの設定ではできません。
リストボックスを利用するか?バブルソートででも並び替えるかしかないのでは!

投稿時間:2003/07/21(Mon) 16:05
投稿者名:エメ
Eメール:
URL :
タイトル:
Re^2: FileListBoxでの作成日時ソート
> > あるかと思うのですが、なるべく簡単にコーディングしたいのです。
> どの程度が簡単で、いい方法なのか判りませんが、少なくてもプロパティや
> メソッドの設定ではできません。
> リストボックスを利用するか?バブルソートででも並び替えるかしかないのでは!

すみません、言葉を誤りました。ユーザインターフェースを考えて、できればシンプルに
ファイルリストボックスを作成日時でソートしたものを表示したかったということです。

おっしゃる通り、リストボックスに取得日時を持たせてソートかけてみようと思います。
回答ありがとうございました。

投稿時間:2003/07/21(Mon) 16:19
投稿者名:Say
Eメール:
URL :
タイトル:
Re^3: FileListBoxでの作成日時ソート
たとえば、Shell関数で、
コマンドインタプリタ(command.com,cmd.exe)経由で

dir c:\test /OD /B /TC > c:\Dir.txt

みたいなDOSコマンド発行して、できたテキストを表示するとか。

投稿時間:2003/07/21(Mon) 19:11
投稿者名:エメ
Eメール:
URL :
タイトル:
「解決」Re^4: FileListBoxでの作成日時ソート
Sayさんこんばんわ。レスありがとうございます。
> たとえば、Shell関数で、
> コマンドインタプリタ(command.com,cmd.exe)経由で
>
> dir c:\test /OD /B /TC > c:\Dir.txt
>
> みたいなDOSコマンド発行して、できたテキストを表示するとか。

。。なるほど!ファイルだけに許されたソート方法ですね、盲点でした。
勉強になります。

プログラムはバブルソートを使用した関数を作成して解決しました。

Public Function makeJobList()
    Dim icnt As Integer
    Dim fileBox() As String
    Dim inPath As String
    ReDim fileBox(frmMain.inFile.ListCount)
    For icnt = 0 To frmMain.inFile.ListCount - 1
        inPath = ""
        inPath = frmMain.inDir.Path & "\" & frmMain.inFile.List(icnt)
        '作成日時取得
        fileBox(icnt) = FileDateTime(inPath) & Chr$(34) & frmMain.inFile.List(icnt) & Chr$(34)
    Next
    'fileBox内データを作成日時順にソート
    Call BubbleSort(fileBox(), UBound(fileBox), True)
    'リストボックス初期化
    frmMain.jobList.Clear
    'ファイル名のみリストボックスへ
    For icnt = 0 To UBound(fileBox)
        Call frmMain.jobList.AddItem(getTargetFileName(fileBox(icnt)))
    Next

End Function


'data() = ソートしたいデータ
'flag = ソート、降順、昇順切り替え
Public Function BubbleSort(ByRef data() As String,
                      Optional flag As Boolean = False)

〜以下略〜