1

こんにちは、少し問題があります。これと似たような投稿をたくさん読みましたが、完全な答えが見つかりませんでした..今日が祝日かどうかを確認する必要があります。次のような祝日の日付を含む「public-holiday-dates.txt」ファイルがあります:(mmddyyyy)

01012013

07012013

12252013

そして、今日の日付の例: 04172013 を持つ変数 $today_date_is があり、.txt ファイルでこの値を検索し、見つかった場合は 1 を返す必要があります (これは、今日が祝日の日付の場合です)。見つかりません(今日は営業日です)

どうすればこれを行うことができますか? ファイルを開いてすべての情報を変数にロードし、行を分割する必要がありますか? または、ファイル内を検索できますか? どうすれば値0または1を返すことができますか..よろしくお願いします..

4

3 に答える 3

1

ファイルのサイズpublic-holiday-dates.txtはおそらくそれほど大きくないので、一度読み込んで行を分割し、結果のリストを変数に格納します。次のように実行できます。

set fp [open "public-holiday-dates.txt" r]
set file_data [read $fp]
close $fp
set holidays [split $file_data "\n"]

すべての休日をリストにまとめたら、lsearch(リスト検索) を使用して、指定された日付のリストを検索できます。1 つの複雑な点はlsearch、アイテムが見つかったインデックスを返すか、見つからない場合は -1 を返すことです。したがって、それを目的の 0/1 に変換する必要があります。次のように実行できます。

[expr [lsearch $holidays $today_date_is] > -1]
于 2013-04-17T15:52:33.500 に答える