0

現在のコードは、次のように Outlook 予定表データベースを開きます。

my $outlook = Win32::OLE->GetActiveObject('Outlook.Application') || Win32::OLE->new('Outlook.Application', 'Quit');

my $namespace = $outlook->GetNamespace("MAPI");

## only fetch entries from Jan 1, 2007 onwards
my $restrictDates = "[Start] >= '01/01/2007'";  
4

1 に答える 1

1

オブジェクトの日付を取得するコードを示していないため、アクセスしようとしている Outlook オブジェクトに関する知識がなければ、この質問に答えることはできません。

オブジェクトの配列がある場合は、それらを日付で並べ替え、特定のものより前のものをフィルタリングできます。

my $sub = sub {
       my $ad = $a->date_string_accessor;
       my $bd = $b->date_string_accessor;
       $ad =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       $bd =~ s:(\d+)/(\d+)/(\d+):$3 . sprintf('%0d', $1) . sprintf('%0d', $2):e;
       return $ad cmp $bd;
};

my @sorted = sort $sub @unsorted;

print join("\n", @sorted);

しかし、これを行うにはアプリケーション自体を使用する必要があるように思えます。おそらく、Outlook には何らかのクエリ/ソート機能があります。

于 2008-09-17T02:43:12.787 に答える