日付式:
SUBSTRING(@ [User :: Filename]、FINDSTRING(@ [User :: Filename]、 "_"、2)+1、8)
OldestDate式:
(DT_I4)(RIGHT(@ [User :: Date]、4)+ SUBSTRING(@ [User :: Date]、3,2)+ SUBSTRING(@ [User :: Date]、1、2))
スクリプトタスク-I
Public Sub Main()
Dim OldestDate As Integer
Dim CurrentDate As Integer
OldestDate = CType(Dts.Variables("OldestDate").Value, Integer)
CurrentDate = CType(Dts.Variables("CurrentDate").Value, Integer)
If OldestDate > CurrentDate Then
Dts.Variables("OldestFile").Value = Dts.Variables("Filename").Value.ToString()
Dts.Variables("CurrentDate").Value = CType(Dts.Variables("OldestDate").Value, Integer)
End If
Dts.TaskResult = Dts.Results.Success
End Sub
スクリプトタスク-II
Public Sub Main()
MsgBox(Dts.Variables("OldestFile").Value.ToString())
Dts.TaskResult = Dts.Results.Success
End Sub
説明:
ここでの基本的な考え方は、日付部分、つまりDDMMYYYYを取得し、それをYYYYMMDDに変換することです。これで、日付がYYYYMMDD形式である限り、単純な整数比較によってどちらの日付が大きいかを比較できます。最初のファイルの日付を19000101(かなり過去の日付)と比較することから始め、次にスクリプトタスクで見られるように-I、OldestFileにFilenameを条件付きで割り当てます。スクリプトタスク-IIは、最も古い日付のファイル名を出力します。