DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイルを日付順に読込む

環境/言語:[Win2000]
分類:[VB6以前]

ファイルを日付順に読込みたいのですが、いい方法は無いでしょうか?

読込むファイルは、固定のフォルダの全てのファイルです。
ちなみに作成するものにはFormはありません。

よろしくお願いします。
難しく考えずに、
Dir関数、FileDateTime関数で取得したファイル名、日付を
配列に保存し、内部でソートすればいいんじゃないですか?
■No3124に返信(Sugi@ぱぱんぶぃびぃさんの記事)
> 難しく考えずに、
> Dir関数、FileDateTime関数で取得したファイル名、日付を
> 配列に保存し、内部でソートすればいいんじゃないですか?
>
>

Sugiさんありがとうございます。
やはり、地道な方法しかないですか・・・
わがままな理想としては
1.Dir関数じゃなくて、日付でソートしながら取得できる関数
2.ソートの関数、オブジェクトを利用する
が、あればよいのですが、

1はライブラリなどを使用しない限り無いと思われるので(あったらうれしい)
2でやりたいのですが、なるべく自作ソートはやめたいです。
C言語のQSortみたいな関数はあるのでしょうか?
またはListView等のオブジェクトのソート機能をFormを使用しないで
利用する方法はありますか?
結局、自作しました。

Dir関数の日付ソート版
ちょっと長いですけど

Public Function DirSortTime(Optional PathName, Optional Attirbutes As VbFileAttribute = vbNormal) As String
Static FName() As String
Static FDate() As String
Static FCnt As Long
Dim WorkFileName As String
Dim FoldaName As String
Dim i As Long, j As Long
Dim Temp As String

If Not IsMissing(PathName) Then
FCnt = 0
FoldaName = Left(PathName, InStrRev(PathName, "\"))
WorkFileName = Dir(PathName, Attirbutes)
i = 0
Do While WorkFileName <> ""
ReDim Preserve FName(i)
ReDim Preserve FDate(i)
FName(i) = WorkFileName
FDate(i) = FileDateTime(FoldaName & WorkFileName)
WorkFileName = Dir
i = i + 1
Loop
If i = 0 Then
DirSortTime = ""
Exit Function
End If
For i = 0 To UBound(FName) - 1
For j = i + 1 To UBound(FName)
If FDate(i) > FDate(j) Then
Temp = FName(i)
FName(i) = FName(j)
FName(j) = Temp
Temp = FDate(i)
FDate(i) = FDate(j)
FDate(j) = Temp
End If
Next j
Next i
End If
If FCnt <= UBound(FName) Then
DirSortTime = FName(FCnt)
FCnt = FCnt + 1
Else
DirSortTime = ""
End If

End Function

以上、Sugiさんありがとうございました。
↑ネストしたつもりなのに????
あと、チェックマーク付け忘れました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板