' カレンダー兼簡易なスケジューラ V-Scheduler
' 上下左右キー、pageDown、PageUp、Insert、Enter、Escキーなどが使えます。
' スケジュールの入力は、Insertキーで行います。
' version 0.02  (2003-08-11)

母艦の、タイトルは、「V-Scheduler」。
その、幅は、６００。
その、高さは、４００。
母艦を、中央へ移動。
母艦浮上。
'母艦の、キー押した時を、キーイベントに、設定。
文字書体＝『ＭＳ　ゴシック』

' データ入力用ファイルの準備
「{母艦のパス}V-SCH.DAT」が、存在するか。
もし、それが、いいえならば、（
「0000/00/00\tスケジュール管理データ\n」を、「{母艦のパス}V-SCH.DAT」へ、保存。
）

' スケジュール管理メニューを作成
スケジュール管理メニューを、メニュー作成。
スケジュール管理メニューに、データ入力メニューを、メニュー追加。
その、イベントは、データ入力を、呼ぶ。
その、ショートカットキーは、「Ins」
スケジュール管理メニューに、データ出力メニューを、メニュー追加。
その、イベントは、データ出力を、呼ぶ。
その、ショートカットキーは、「Enter」
スケジュール管理メニューに、データ編集メニューを、メニュー追加。
その、イベントは、データ編集を、呼ぶ。
その、ショートカットキーは、「Del」
スケジュール管理メニューに、データソートメニューを、メニュー追加。
その、イベントは、データソートを、呼ぶ。
スケジュール管理メニューに、データ削除メニューを、メニュー追加。
その、イベントは、データ削除を、呼ぶ。
スケジュール管理メニューに、終了！メニューを、メニュー追加。
その、イベントは、エンドへ、飛ぶ。
その、ショートカットキーは、「Esc」

' 日付ジャンプメニューを作成
日付ジャンプメニューを、メニュー作成。
日付ジャンプメニューに、前日メニューを、メニュー追加。
その、イベントは、前日を、呼ぶ。
その、ショートカットキーは、「Left」
日付ジャンプメニューに、翌日メニューを、メニュー追加。
その、イベントは、翌日を、呼ぶ。
その、ショートカットキーは、「Right」
日付ジャンプメニューに、先週メニューを、メニュー追加。
その、イベントは、前週を、呼ぶ。
その、ショートカットキーは、「Up」
日付ジャンプメニューに、来週メニューを、メニュー追加。
その、イベントは、翌週を、呼ぶ。
その、ショートカットキーは、「Down」
日付ジャンプメニューに、先月メニューを、メニュー追加。
その、イベントは、前月を、呼ぶ。
その、ショートカットキーは、「PgDn」
日付ジャンプメニューに、来月メニューを、メニュー追加。
その、イベントは、翌月を、呼ぶ。
その、ショートカットキーは、「PgUp」
日付ジャンプメニューに、昨年メニューを、メニュー追加。
その、イベントは、前年を、呼ぶ。
その、ショートカットキーは、「Home」
日付ジャンプメニューに、来年メニューを、メニュー追加。
その、イベントは、翌年を、呼ぶ。
その、ショートカットキーは、「End」

' 読上げメニューを作成
読上げメニューを、メニュー作成。
読上げメニューに、日付メニューを、メニュー追加。
その、イベントは、日付読上げを、呼ぶ。
その、ショートカットキーは、「F5」
読上げメニューに、時刻メニューを、メニュー追加。
その、イベントは、時刻読上げを、呼ぶ。
その、ショートカットキーは、「F6」

' 起動時の動作
今日。
日付＝それ。
日付の計算を、呼ぶ。
２．８秒、待つ。
データ出力を、呼ぶ。
待機。

'＊キーイベント
'押されたキーで、条件分岐。
'３７の時、（前日を、呼ぶ。）
'３９の時、（翌日を、呼ぶ。）
'３８の時、（前週を、呼ぶ。）
'４０の時、（翌週を、呼ぶ。）
'２７の時、（エンドへ、飛ぶ。）
'戻る。

＊日付の計算
西暦バッファ＝西暦。
日付の、「/0」を、「/」に、置換。
それで、１個目の、「/」を、「年」に、単置換。
それで、１個目の、「/」を、「月」に、単置換。
それを、全角変換。
出力用日付＝それ。
出力用日付の中で、３から、３つ、ＭＩＤ。
西暦＝それ。
出力用日付から、５文字、左端を切り取る。
日付の、曜日。
出力用日付＝出力用日付＆「日　（」＆それ＆「曜日）」。
西暦バッファと、西暦で、文比較。
もし、それが、いいえならば、西暦を、コピー。
出力用日付を、コピー。
画面表示を、呼ぶ。
スケジュール＝「」。
戻る。

＊画面表示
黒色で、画面クリア。
文字色＝水色。
文字サイズ＝２０。
ペン色＝水色。
ペン太さ＝２。
（０，６）から、（６００，６）へ、線。
（０，１０）から、（６００，１０）へ、線。
センタリング。
（０，１８）へ、移動。
出力用日付を、表示。
センタリング解除。
（０，５８）から、（６００，５８）へ、線。
文字色＝白色。
文字サイズ＝１６。
（０，６２）へ、移動。
戻る。

＊日付読上げ
出力用日付を、コピー。
戻る。

＊時刻読上げ
今。
時刻は、それ。
時刻,１、LEFT。
もし、それが、「0」ならば、時刻から、１文字、左端を切り取る。
時刻の、「:0」を、「:」に、置換。
それで、１個目の、「:」を、「時」に、単置換。
それで、１個目の、「:」を、「分」に、単置換。
それに、「秒」を、足す。
それを、全角変換。
出力用時刻＝それ。
出力用時刻を、コピー。
戻る。

＊前日
日付に、「-0/0/1」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊翌日
日付に、「0/0/1」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊前週
日付に、「-0/0/7」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊翌週
日付に、「0/0/7」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊前月
日付に、「-0/1/0」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊翌月
日付に、「0/1/0」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊前年
日付に、「-1/0/0」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊翌年
日付に、「1/0/0」を、日付加算。
日付＝それ。
日付の計算に、飛ぶ。

＊データ入力
文字色＝黒色。
ダイアログＩＭＥの状態＝ＩＭＥオン。
「スケジュールの入力」と、尋ねる。
もし、それ<>「」ならば（
　出力用日付＆「に、以下の内容を登録しました。」を、コピー。
　追加スケジュール＝日付＆「\t」＆それ＆「\n」。
　追加スケジュールを、「{母艦のパス}V-SCH.DAT」に、追加保存。
　０．１秒、待つ。
　画面表示を、呼ぶ。
　データ出力を、呼ぶ。
）
違えば、「Escape」を、コピー。
戻る。

＊データ出力
ＩＮで、「{母艦のパス}V-SCH.DAT」の、ハンドルを開く。
１で、ループ（
それに、ＩＮの、ハンドルを一行読む。
それを、「｛日付｝*」で、マッチ。
もし、それ<>「」ならば、（
　スケジュール＝それ。
　スケジュールから、１１文字、左端を切り取る。
　スケジュールを、コピー。
　スケジュールを、表示。
）
ＩＮの、ハンドル最後か。
もし、それが、はいならば、抜ける。
）
ＩＮの、ハンドルを閉じる。
もし、スケジュール＝「」ならば、「スケジュールはありません。」を、コピー。
もし、スケジュール＝「」ならば、「スケジュールはありません。」を、表示。
戻る。

＊データ編集
「notepad.exe {母艦のパス}V-SCH.DAT」を、起動。
戻る。

＊データソート
それに、「{母艦のパス}V-SCH.DAT」を、読む。
それの、「\t」を、「,」に、置換。
内容に、入れる。
内容の、０列目を、表ソート。
内容＝それ。
「」を、「{母艦のパス}V-SCH.DAT」へ、保存。
内容を、反復（
　内容#0#(回数-1)&「\t」&内容#1#(回数-1)&「\n」を、「{母艦のパス}V-SCH.DAT」へ、追加保存。
）
「データを並べ替えました。」を、コピー。
戻る。

＊データ削除
データソートを、呼ぶ。
０．２秒、待つ。
今日。
それの、「/」を、「」に、置換。
今日の日付＝それ。
ＩＮで、「{母艦のパス}V-SCH.DAT」の、ハンドルを開く。
ＯＵＴで、「{母艦のパス}V-SCH.NSN」の、ハンドルを開く。
「0000/00/00\tスケジュール管理データ」を、ＯＵＴの、ハンドルへ一行書く。
１で、ループ（
行バッファに、ＩＮの、ハンドルを一行読む。
行データ＝行バッファ。
行バッファを、「*\t」で、マッチ。
それの、「/」を、「」に、置換。
データの日付＝それ。
もし、(データの日付-今日の日付)>=0ならば、行データを、ＯＵＴの、ハンドルへ一行書く。
ＩＮの、ハンドル最後か。
もし、それが、はいならば、抜ける。
）
ＩＮの、ハンドルを閉じる。
ＯＵＴの、ハンドルを閉じる。
「{母艦のパス}V-SCH.NSN」から、「{母艦のパス}V-SCH.DAT」へ、ファイルコピー。
「{母艦のパス}V-SCH.NSN」を、ファイル完全削除。
「昨日までのデータを削除しました。」を、コピー。
戻る。

＊エンド
'データソートを、呼ぶ。
'「終了しますか？」と、二択。
'もし、それが、いいえならば、戻る。
２回、（ＢＥＥＰ。０．３秒、待つ。）
'「プログラム終了。」を、４、１、音声出力。
「プログラム終了。」を、コピー。
１秒、待つ。
おわり。

