月別概要html作成処理v2.nako
概要htmlファイルテーブル追加処理V2.nako
日別ページ作成処理V2.nako
日別ページリンク自動追加v2.nako
※【なでしこ実行モード】cnako
#月別概要htmlファイル作成処理 copyright ayukawafarm
##テンプレートの概要概要htmlファイルをコピーして、日付関係リンクを設定する
REV=「2.3」 ##2010/02/09 個別月指定バグ修正
//REV=「2.2」 ##2010/02/07 当前翌月末日曜日算出処理V2に変更
//REV=「2.1」 ##2010/02/01 置換しないときのメッセージ変更
##REV=「2.0」 ##2010/01/26 ファイルの読み方を変える
##REV=1.0 ##2010/01/24 create
「REV={REV} 月別概要htmlファイル作成開始」と表示
##重要##対象フォルダを本番とテストを切り替え###############################
格納フォルダ=「##################\本番\」 ##本番用に格納されているプログラムを使用する場合
ワークフォルダ=作業フォルダ取得
##ワークフォルダを表示
もし、格納フォルダ==ワークフォルダならば
対象フォルダ切り替え=「##################」
「本番フォルダ使用:{対象フォルダ切り替え}」と表示
違えば
対象フォルダ切り替え=「##################」
「テストフォルダ使用:{対象フォルダ切り替え}」と表示
ここまで
#######################################################################
バックアップフォルダ=「##################」
処理日配列ワークとは配列その値=空
処理日配列とは配列その値=空
区分 = 1 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 今日
当前翌月末日曜日算出処理(区分,日付) //関数呼び出し
処理日配列ワーク = それ
//処理日配列ワーク[0]を表示
処理日配列=処理日配列ワーク[0] //当日分のみ使用
//処理日配列を表示
処理時刻区分 = 今
処理時刻=処理時刻区分の「:」を「」に置換
処理日時 = 処理日配列\0 & 処理時刻 ##バックアップファイルスタンプに使用
// 日付配列m 0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd 9:week */
処理日時を表示
処理年月 = 処理日配列\2
処理年 = 処理日配列\1
処理月 = 処理日配列\4
//処理日配列を表示
日記フォルダ2009=「dairy」
日記フォルダ2010=「diary」
処理指示 = 0
(処理指示 = 0)の間
自動設定パラ = 0
「今月を自動設定しますか?」と二択
もし、(それ==はい)ならば
対象年月 = 処理年月
対象年 = 処理年
対象月 = 処理月
自動設定パラ = 1
違えば、
「作成対象年月をyyyy/mmで指定」と尋ね、指定パラに代入
指定パラを「####/[=01|02|03|04|05|06|07|08|09|10|11|12]」でワイルドカード一致
もし、それがはいならば
指定パラを「/」で区切って「対象年,対象月」へ変数分配
対象年月=対象年&対象月
処理指示=1
違えば
二択ボタン選択(「入力値不正(月)」,「指定パラ={指定パラ}」,「」,「1」)
続ける
ここまで
ここまで
ここまで
##前月計算
もし、(対象月 > 1)ならば
前月=対象月 - 1
前月年 = 対象年
違えば
前月 = 12
前月年 = 対象年 - 1
ここまで
##翌月計算
もし、(対象月 < 12)ならば
翌月 = 対象月 + 1
翌月年 = 対象年
違えば
翌月 = 1
翌月年 = 対象年 + 1
ここまで
前月 = 前月を2でゼロ埋め
翌月 = 翌月を2でゼロ埋め
前月年月 = 前月年 & 前月
翌月年月 = 翌月年 & 翌月
「入力指定
対象年月={対象年月}、前月年月={前月年月}、翌月年月={翌月年月}
」と表示
##処理本体
##対象ファイル存在確認
もし、(対象年 >= 2010)ならば
日記フォルダ=日記フォルダ2010
違えば
日記フォルダ=日記フォルダ2009
ここまで
##バックアップフォルダを表示
対象ファイル=「{対象フォルダ切り替え}\{日記フォルダ}\{対象年}\{日記フォルダ}{対象年月}.html」
##「対象ファイル={対象ファイル}」を表示 ##デバツク用
上書パラ=0
もし、(対象ファイルが存在するか=はい)ならば
「存在する対象ファイル={対象ファイル}」を表示
「対象ファイルを上書せず処理中止?」と二択
もし、(それ==はい)ならば
「処理中止3」と表示
終了
違えば
「対象ファイルをバックアップしてから上書きします」と表示
バックアップファイル=「{バックアップフォルダ}\{対象年}\{日記フォルダ}{対象年月}-{処理日時}.html」
ファイル名は対象ファイルから、バックアップファイルへファイルコピー。
「処理前の対象ファイルは、{バックアップファイル}でバックアップ」と表示
ここまで
ここまで
##前月ファイル存在確認
もし、(前月年 >= 2010)ならば
日記フォルダ前月=日記フォルダ2010
違えば
日記フォルダ前月=日記フォルダ2009
ここまで
前月ファイル=「{対象フォルダ切り替え}\{日記フォルダ前月}\{前月年}\{日記フォルダ前月}{前月年月}.html」
##前月ファイルを表示 ##デバツク用
前月存在パラ=1
もし、(前月ファイルが存在するか=いいえ)ならば
「前月ファイル無し、リンク設定しない」と表示
前月存在パラ=0
ここまで
##翌月ファイル存在確認
もし、(翌月年月 >= 2010)ならば
日記フォルダ翌月=日記フォルダ2010
違えば
日記フォルダ翌月=日記フォルダ2009
ここまで
翌月ファイル=「{対象フォルダ切り替え}\{日記フォルダ翌月}\{翌月年}\{日記フォルダ翌月}{翌月年月}.html」
##翌月ファイルを表示 ##デバツク用
翌月存在パラ=1
もし、(翌月ファイルが存在するか=いいえ)ならば
「翌月ファイル無し、リンク設定しない」と表示
翌月存在パラ=0
ここまで
##テンプレートの月概要ファイルを対象ファイルとして複写
もし、(対象年 >= 2010)ならば
日記フォルダ=日記フォルダ2010
違えば
日記フォルダ=日記フォルダ2009
ここまで
テンプレートファイル=「{対象フォルダ切り替え}\{日記フォルダ}\template\{日記フォルダ}-yyyymm.html」
もし、(テンプレートファイルが存在するか=いいえ)ならば
「存在しないテンプレートファイル={テンプレートファイル}」を表示
「テンプレートファイルが存在しない、処理を中止する」と表示
「処理中止4」と表示
終了
ここまで
ファイル名はテンプレートファイルから、対象ファイルへファイルコピー。
「対象ファイル={対象ファイル}を作成」と表示
##日付関係のリンク設定
行1=「日記・{対象年}年{対象月}月 福島県飯舘村田舎暮らし、農業、パン、お菓子、ログ、設備施工」
行2=「<a href="../../{日記フォルダ前月}/{前月年}/{日記フォルダ前月}{前月年月}.html" target="_self">{前月}月へ</a>」
行3=「<a href="../../{日記フォルダ翌月}/{翌月年}/{日記フォルダ翌月}{翌月年月}.html" target="_self">{翌月}月へ</a>」
行4=「{対象年}年{対象月}月」
行カウント = 0
ファイル内容は配列
ファイル内容は空
行内容 = 「」
行内容元 = 「」
行1置換カウント = 0
行2置換カウント = 0
行3置換カウント = 0
行4置換カウント = 0
対象ファイルを毎行読んで反復
行内容元 = それ
##たいとるを置換
行内容 = それ
「福島県飯舘村田舎暮らし日記タイトル」を行1に置換
もし、(行内容 <> それ)ならば
行1置換カウント = 行1置換カウント + 1
行内容 = それ
ここまで
##前月を置換
もし、(前月存在パラ==1)ならば
「前月へ」を行2に置換
もし、(行内容 <> それ)ならば
行2置換カウント = 行2置換カウント + 1
行内容 = それ
ここまで
ここまで
##翌月を置換
もし、(翌月存在パラ==1)ならば
「翌月へ」を行3に置換
もし、(行内容 <> それ)ならば
行3置換カウント = 行3置換カウント + 1
行内容 = それ
ここまで
ここまで
##対象年月を置換
「*対象年月*」を行4に置換
もし、(行内容 <> それ)ならば
行4置換カウント = 行4置換カウント + 1
行内容 = それ
ここまで
ファイル内容\行カウント = それ
行カウント = 行カウント + 1
ここまで
##rewite
ファイル内容を対象ファイルへ保存。
##終了処理
「行カウント={行カウント}
行1置換カウント={行1置換カウント}、行2置換カウント={行2置換カウント}、行3置換カウント={行3置換カウント}、行4置換カウント={行4置換カウント}
処理完了」と表示
終了。
####関数定義#####################################################################
●二択ボタン選択(二択コメント1、二択コメント2、飛び先、作業中止番号)
「{二択コメント1}、{二択コメント2} 再入力しますか?」で二択
もしそれがはいならば
もし、「{飛び先}」<>「」ならば ##飛び先が無い場合この作業の次に制御が移る
「{飛び先}」へ飛ぶ ##飛び先を指定していると再入力ポイントへ飛ぶ
ここまで
違えば
「作業中止{作業中止番号}」と表示
終了
ここまで
●当前翌月末日曜日算出処理(区分と日付で)
/* 2010/02/07 V2 Create COPYLIGHT AYUKAWAFARM
区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列 0,n:0、1,n:1、2,n:翌日、3,n:月末日
日付配列m 0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd 9:week */
日付配列とは配列その値=空
日付処理(区分,日付) //関数呼び出し
日付配列[0]はそれ
年月日区分=日付配列[0,6]に「-0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[1]はそれ
年月日区分=日付配列[0,6]に「+0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[2]はそれ
年月日区分=日付配列[0,6]に「+0/1/0」を日付加算
年月日区分=MID(年月日区分,1,7)&「/」&「01」に「-0/0/1」を日付加算 //月末日算出
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[3]はそれ
日付配列で戻る。 ##関数戻り
●日付処理(区分と年月日で)
//関数呼び出し 区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列とは配列その値=空
もし、(区分==0)ならば ##yyyymmdd
日付配列[0]=年月日 ##yyyymmdd
日付配列[1]=MID(日付配列[0],1,4) ##yyyy
日付配列[4]=MID(日付配列[0],5,2) ##mm
日付配列[5]=MID(日付配列[0],7,2) ##dd
日付配列[6]=日付配列[1]&「/」&日付配列[4]&「/」&日付配列[5] ##yyyy/mm/dd
違えば
日付配列[6]=年月日 ##yyyy/mm/dd
日付配列[0]=日付配列[6]の「/」を「」に置換 ##yyyymmdd
日付配列[6]を「/」で区切って「A,B,C」へ変数分配
日付配列[1]=A
日付配列[4]=B
日付配列[5]=C
ここまで
日付配列[2]=日付配列[1] & 日付配列[4] ##yyyymm
日付配列[3]=日付配列[4] & 日付配列[5] ##mmdd
日付配列[7]=日付配列[1] & 「/」 & 日付配列[4] ##yyyy/mm
日付配列[8]=日付配列[4] & 「/」 & 日付配列[5] ##MM/DD
日付配列[9]=日付配列[6]の曜日
日付配列で戻る。 ##関数戻り
##関数終わり
##概要htmlファイルのテーブル追加作業 Copy Light ayukawafram
※【なでしこ実行モード】cnako
##概要htmlファイルの日付テーブルに指定された数だけテーブル要素(tr /tr)を追加
##指示開始日と終了日を指定、終了日最大はは当該月の末日まで
REV=「2.2」 ##2010/02/09 指定値入力見直し、日別リングバグ修正
//REV=「2.1」 ##2010/02/07 当前翌月末日曜日算出処理に変更
//REV=「2.0」 ##2010/01/26 全面的に書き直し
##REV=「1.0」 2010/01/18 新規作成
##重要##対象フォルダを本番とテストを切り替え###############################
格納フォルダ=「################\本番\」 ##本番用に格納されているプログラムを使用する場合
##作業フォルダ取得 ##作業ホルダ取得
もし、(格納フォルダ==作業フォルダ取得)ならば
対象フォルダ切り替え=「################」
「本番フォルダ使用:{対象フォルダ切り替え}」と表示
違えば
対象フォルダ切り替え=「################」
「テストフォルダ使用:{対象フォルダ切り替え}」と表示
ここまで
##バックアップフォルダの指定
バックアップフォルダ=「################」
日記フォルダ2009=「dairy」
日記フォルダ2010=「diary」
#######################################################################
追加行は「 <tr>
<nnnnnnnnn>
<td class="top">h時mm分<br>晴、曇、雨、霧<br>雪(積雪 cm)<br>、風(弱、中、強、突風)<br>nn.n</td>
<td class="top">nn.n/nn.n</td>
<td>
<h3>生活</h3>
<h4>たたたた</h4>
<p>ててててててて。</p>
<h3>農業</h3>
<h4>たたたたたたた</h4>
<p>ててててててて。</p>
<h3>加工・販売</h3>
<h4>たたたたたたた</h4>
<p>ててててててて。</p>
<h3>建築・施工</h3>
<h4>たたたたたたた</h4>
<p>ててててててて。</p>
<nnnnnnnnn>
</td>
</tr>
<!--(追加行挿入位置)-->」
##今日の日時取得
作業年月日区切=今日
作業年月日区切を「/」で区切って「作業年,作業月,作業日」へ変数分配
作業年月日=作業年&作業月&作業日
作業年月=作業年&作業月
##作業時刻取得
作業時刻区分=今
作業時刻=作業時刻区分の「:」を「」に置換
作業日時=作業年月日&作業時刻
「作業日時=」&作業日時を表示 ##バックアップファイルスタンプに使用
処理指示 = 1
(処理指示 = 1)の間
####指示年月日取得
「概要htmlファイルは年/月でYYYY/MMと指定、指定無しは当月:{作業年}年{作業月}月とみなす」と尋ねて、入力値1に代入
もし、入力値1==「」ならば
指示年=作業年
指示月=作業月
指示年月=作業年月
処理指示 = 0
違えば
入力値1を「####/[=01|02|03|04|05|06|07|08|09|10|11|12]」でワイルドカード一致
もし、それがはいならば
入力値1を「/」で区切って「指示年,指示月」へ変数分配
指示年月=指示年&指示月
処理指示 = 0
違えば
二択ボタン選択(「年月入力値不正(不一致ワイルドカード)」,「指定値={入力値1}」,「」,「1」)
続ける
ここまで
ここまで
ここまで
「指示年月=」&指示年月を表示
####指示年月を取得完了
####追加日付を開始日-終了日で取得
処理指示 = 1
(処理指示 = 1)の間
「追加日付を開始日-終了日でDD-DDと指定」と尋ねて、入力値2に代入
入力値2を「##-##」でワイルドカード一致
もし、それがはいならば
入力値2を「-」で区切って「指示開始日,指示終了日」へ変数分配
もし、(指示開始日<=指示終了日)ならば
指示開始年月日=指示年月&指示開始日
指示終了年月日=指示年月&指示終了日
日付配列は配列=空
当前翌月末日曜日算出処理(「0」,指示開始年月日) //関数呼び出し
日付配列はそれ
もし、指示終了年月日<=日付配列[3,0]ならば //月末日より大きいとえらー
処理指示 = 0
違えば
二択ボタン選択(「開始日、終了日値不正(月末より大きい)」,「指定値={入力値2}」,「」,「2」)
続ける
ここまで
違えば
二択ボタン選択(「開始日、終了日値不正(開始日>終了日)」,「指定値={入力値2}」,「」,「3」)
続ける
ここまで
違えば
二択ボタン選択(「開始日、終了日値不正(開始日>終了日)」,「指定値={入力値2}」,「」,「3」)
続ける
ここまで
ここまで
「指示開始年月日=」&指示開始年月日を表示
「指示終了年月日=」&指示終了年月日を表示
処理年月日=日付配列[0,0]
処理年月日区切=日付配列[0,6]
処理年=日付配列[0,1]
処理年月=日付配列[0,2]
処理月=日付配列[0,4]
処理日=日付配列[0,5]
処理曜日=日付配列[0,9]
//日付配列を表示 //デバック行
「----指定パラメータと日付----
入力値1は{入力値1}、入力値2は{入力値2}
開始日は{指示開始年月日}、終了日は{指示終了年月日}
」と表示。
##追加処理するファイル(対象)を読むための準備
##ファイル作業
もし、(処理年 > 2009)ならば
日記フォルダ=「diary」
違えば
日記フォルダ=「dairy」
ここまで
##バックアップ
対象ファイル=対象フォルダ切り替え&「\」&日記フォルダ&「\」&処理年&「\」&日記フォルダ&処理年月&「.html」
バックアップファイル=バックアップフォルダ&「\」&日記フォルダ&「\」&処理年&「\」&日記フォルダ&処理年月&「-」&作業日時&「.html」
もし、(対象ファイルが存在するか=はい)ならば
対象ファイルをバックアップファイルへファイルコピー
「バックアップ=」&バックアップファイルと表示
違えば
対象ファイル&「が無い。中断し終了する」と表示、終了
ここまで
##開始日から終了日までファイルを読み、日付、曜日を設定して、当該行群を挿入する
##作業本体開始
(処理年月日 ≦ 指示終了年月日)の間
「追加テーブル日付=」&処理年月日を表示 デバック行
追加行[1]=「 <td class="top"><a name="{処理日}">{処理日}<br>({処理曜日})</a></td>」
追加行[2]=「 <td class="top">h時mm分<br>晴、曇、雨、霧<br>雪(積雪 cm)<br>、風(弱、中、強、突風)<br>nn.n</td>」
追加行[3]=「 <td class="top">nn.n/nn.n</td>」
追加行[17]=「 <a href="{処理年月}\{日記フォルダ}{処理年月日}.html" target="_self"><img src="file:///D:/html/ayukawafarm/diary/images/bullet002.gif" width="18" height="18" border="0">日別ページはこちらから</a>」
対象ファイルを読む
それの「<!--(追加行挿入位置)-->」を追加行に置換する。
それを対象ファイルへ保存
日付配列は配列=空
当前翌月末日曜日算出処理(「0」,処理年月日) //関数呼び出し
日付配列はそれ
########日付配列\2,n:翌日
処理年月日=日付配列[2,0]
処理日=日付配列[2,5]
処理曜日=日付配列[2,9]
ここまで
「作業終了」と表示
終了
#######関数#################################################
●二択ボタン選択(二択コメント1、二択コメント2、飛び先、作業中止番号)
「{二択コメント1}、{二択コメント2} 再入力しますか?」で二択
もしそれがはいならば
もし、(飛び先<>「」)ならば ##飛び先が無い場合この作業の次に制御が移る
飛び先へ飛ぶ ##飛び先を指定していると再入力ポイントへ飛ぶ
ここまで
違えば
「作業中止{作業中止番号}」と表示
終了
ここまで
●当前翌月末日曜日算出処理(区分と日付で)
/* 2010/02/07 V2 Create COPYLIGHT AYUKAWAFARM
区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列 0,n:0、1,n:1、2,n:翌日、3,n:月末日
日付配列m 0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd 9:week */
日付配列とは配列その値=空
日付処理(区分,日付) //関数呼び出し
日付配列[0]はそれ
年月日区分=日付配列[0,6]に「-0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[1]はそれ
年月日区分=日付配列[0,6]に「+0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[2]はそれ
年月日区分=日付配列[0,6]に「+0/1/0」を日付加算
年月日区分=MID(年月日区分,1,7)&「/」&「01」に「-0/0/1」を日付加算 //月末日算出
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[3]はそれ
日付配列で戻る。 ##関数戻り
●日付処理(区分と年月日で)
//関数呼び出し 区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列とは配列その値=空
もし、(区分==0)ならば ##yyyymmdd
日付配列[0]=年月日 ##yyyymmdd
日付配列[1]=MID(日付配列[0],1,4) ##yyyy
日付配列[4]=MID(日付配列[0],5,2) ##mm
日付配列[5]=MID(日付配列[0],7,2) ##dd
日付配列[6]=日付配列[1]&「/」&日付配列[4]&「/」&日付配列[5] ##yyyy/mm/dd
違えば
日付配列[6]=年月日 ##yyyy/mm/dd
日付配列[0]=日付配列[6]の「/」を「」に置換 ##yyyymmdd
日付配列[6]を「/」で区切って「A,B,C」へ変数分配
日付配列[1]=A
日付配列[4]=B
日付配列[5]=C
ここまで
日付配列[2]=日付配列[1] & 日付配列[4] ##yyyymm
日付配列[3]=日付配列[4] & 日付配列[5] ##mmdd
日付配列[7]=日付配列[1] & 「/」 & 日付配列[4] ##yyyy/mm
日付配列[8]=日付配列[4] & 「/」 & 日付配列[5] ##MM/DD
日付配列[9]=日付配列[6]の曜日
日付配列で戻る。 ##関数戻り
##関数終わり
※【なでしこ実行モード】cnako
##日別ページ作成処理 Copy Light ayukawafram
REV=「2.2」 ##置換項目一部変更 2010/02/07
//REV=「2.1」 ##ボタンによる選択 2010/01/26
##REV=「2.0」 ##create 2010/01/24
「REV{REV} 日別ページ作成処理開始」と表示。
#テンプレートの日別ページhtmlファイルを複写後、日付関係リンクを一括置換変更
#作成開始日から終了日を指定し、この間の日付で作成
##重要##対象フォルダを本番とテストを切り替え###############################
格納フォルダ=「##################本番\」 ##本番用に格納されているプログラムを使用する場合
作業フォルダ取得
それを表示
ワークフォルダ=それ
もし、格納フォルダ==ワークフォルダならば
対象フォルダ切り替え=「##################」
「本番フォルダ使用{対象フォルダ切り替え}」と表示
違えば
対象フォルダ切り替え=「##################」
「テストフォルダ使用{対象フォルダ切り替え}」と表示
#######################################################################
日記フォルダ2009=「dairy」
日記フォルダ2010=「diary」
日記フォルダ=「」
バックアップフォルダ=「##################」
##処理日付処理
処理日配列は配列
区分 = 1 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 今日
日付書式変換(区分,日付)
処理日配列 = それ
処理日配列\0を表示 ##デバツク用
処理時刻区分 = 今
処理時刻=処理時刻区分の「:」を「」に置換
##処理時刻を表示
処理日時 = 「{処理日配列\0}{処理時刻}」 ##バックアップファイルスタンプに使用
処理年月 = 処理日配列\2
処理年 = 処理日配列\1
処理月 = 処理日配列\4
「処理日時={処理日時}」を表示 ##デバツク
##作成関係の日付入力、検査
処理指示 = 1
(処理指示 = 1)の間
▲再入力ポイント
「作成開始、終了日をYYYY/MM/DD-DDで指定」と尋ね、指定パラに代入
指定パラを「(####)/(##)/(##)-(##)」でワイルドカード一致
もし、それがいいえならば
二択ボタン選択(「入力値不正(不一致ワイルドカード)」,「指定値={指定パラ}」,「再入力ポイント」,「1」)
違えば
作成年 = 抽出文字列\0
作成月 = 抽出文字列\1
作成開始日 = 抽出文字列\2
作成終了日 = 抽出文字列\3
作成年月 = 抽出文字列\0 & 抽出文字列\1
作成開始年月日 = 抽出文字列\0 & 抽出文字列\1 & 抽出文字列\2
作成終了年月日 = 抽出文字列\0 & 抽出文字列\1 & 抽出文字列\3
ここまで
もし、((作成月<1) OR (作成月>12))ならば
二択ボタン選択(「入力値不正(月指定)」,「指定値={指定パラ}」,「再入力ポイント」,「2」)
ここまで
もし、((作成開始日<1) OR (作成終了日>31) OR (作成開始日>作成終了日))ならば
二択ボタン選択(「入力値不正(日指定)」,「指定値={指定パラ}」,「再入力ポイント」,「3」)
ここまで
開始年月日区切=作成年 & 「/」 & 作成月 & 「/」 & 作成開始日
作成年月日=作成開始年月日
## 作成年
終了年月日区切=作成年 & 「/」 & 作成月 & 「/」 & 作成終了日
終了年月日=作成終了年月日
##終了日が月末を越えていないか検査、月末日算出のため翌月の開始日算出
もし、(作成月 == 12)ならば
翌月=1
翌月年=作成年 + 1
違えば
翌月=作成月 + 1
翌月年=作成年
ここまで
翌月月初日区切=翌月年 & 「/」 & 翌月 & 「/」 & 「01」
####「翌月月初日区切={翌月月初日区切}」を表示 ##デバッグ用表示
####月末日算出
月末日区切=翌月月初日区切に「-0/0/1」を日付加算
####「月末日区切={月末日区切}」を表示 ##デバッグ用表示
もし、(終了年月日区切 > 月末日区切)ならば
二択ボタン選択(「入力値不正(終了日指定)」,「指定値={指定パラ}」,「再入力ポイント」,「4」)
ここまで
処理指示 = 0 ##入力処理ループを抜ける
ここまで
####翌日を算出
処理日配列は配列
区分 = 1 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 開始年月日区切に「+0/0/1」を日付加算
日付書式変換(区分,日付)
処理日配列 = それ
##0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd
翌日年=処理日配列\1
翌日月=処理日配列\4
翌日年月=処理日配列\2
翌日日=処理日配列\5
翌日年月日=処理日配列\0
翌日年月日区切=処理日配列\6
##
「指定パラメータ:指定パラ={指定パラ}
作成年={作成年}、作成年月={作成年月}、作成開始年月日={作成開始年月日}
開始年月日区切={開始年月日区切}、終了年月日区切={終了年月日区切}
」と表示
##本体処理
コピー元ファイル = 「##################\template\diary-yyyymmdd.html」
もし、(コピー元ファイルが存在するか=いいえ)ならば
二択ボタン選択(「コピー元ファイルが無い」,「指定値={指定パラ}」,「」,「5」)
ここまで
##日記フォルダの切り替え
もし、(作成年 > 2009)ならば
日記フォルダ = 日記フォルダ2010
違えば
日記フォルダ = 日記フォルダ2009
ここまで
もし、(翌日年 > 2009)ならば
日記フォルダ翌日 = 日記フォルダ2010
違えば
日記フォルダ翌日 = 日記フォルダ2009
ここまで
##処理本体
作成頁カウント=0
行カウント = 0
ファイル内容は配列
(作成年月日 <= 終了年月日)の間
/*
「ループ内作成年月日={作成年月日}」を表示
「ループ内前日年月日={前日年月日}」を表示
「ループ内翌日年月日={翌日年月日}」を表示
*/
処理日配列は配列
区分 = 0 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 作成年月日
日付書式変換(区分,日付)
処理日配列 = それ
##0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd
作成年=処理日配列\1
作成年月=処理日配列\2
作成月=処理日配列\4
作成日=処理日配列\5
作成曜日=処理日配列\6の曜日 ##曜日算出
上書パラ = 0
作成フォルダ = 「{対象フォルダ切り替え}\{日記フォルダ}\{作成年}\{作成年月}」
作成ファイル=「{作成フォルダ}\{日記フォルダ}{作成年月日}.html」
もし、(作成ファイルが存在するか=はい)ならば
「作成ファイル={作成ファイル}が存在」と表示
「上書しますか?、上書きする場合、元のファイルはバックアップされる」で二択
もしそれがはいならば
バックアップファイル=「{バックアップフォルダ}\{日記フォルダ}\{日記フォルダ}{作成年月日}-{処理日時}.html」
作成ファイルから、バックアップファイルへファイルコピー
「処理前の対象ファイルは、{バックアップファイル}でバックアップ」と表示
違えば
「処理中止6」と表示
終了
ここまで
ここまで
##日別頁ファイルコピー
コピー元ファイルから、作成ファイルへファイルコピー
## 前日算出
処理日配列は配列
区分 = 0 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 作成年月日
日付書式変換(区分,日付)
処理日配列 = それ
##0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd
前日区切=処理日配列\6に「-0/0/1」を日付加算
処理日配は配列
区分 = 1 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 前日区切
日付書式変換(区分,日付)
処理日配列 = それ
前日年月日=処理日配列\0
前日年=処理日配列\1
前日年月=処理日配列\2
前日日=処理日配列\5
もし、(前日年 > 2009)ならば
日記フォルダ前日 = 日記フォルダ2010
違えば
日記フォルダ前日 = 日記フォルダ2009
ここまで
項目1=「日記・{作成年}年{作成月}月{作成日}日・福島県飯舘村田舎暮らし、農業、ログ、設備施工、農産物加工、パン、菓子作り」
項目2=「<a href="../{日記フォルダ前日}{前日年月}.html#{前日日}" target="_self">概要{前日日}日へ</a>」
項目3=「<a href="../{日記フォルダ}{作成年月}.html#top" target="_self">当月概要へ</a>」
項目4=「<a href="../{日記フォルダ翌日}{翌日年月}.html#{翌日日}" target="_self">概要{翌日日}日へ</a>」
項目5=「{作成年}年{作成月}月{作成日}日 ({作成曜日})」##対象年月日曜日
項目6=「<a href="../{日記フォルダ}{作成年月}.html#{作成日}" target="_self">温度等はこちら</a>」
項目7=「{作成年}年{作成月}月{作成日}日」##対象年月日
/*
「2ループ内作成年月日={作成年月日}」を表示
「2ループ内前日年月日={前日年月日}」を表示
「2ループ内翌日年月日={翌日年月日}」を表示
*/
####ファイルを読み置換処理#######################################
作成ファイルを毎行読んで反復
ファイル行=行カウント
行カウント = 行カウント + 1
「日別頁タイトル行」を項目1に置換
「概要前日へ」を項目2に置換
「月別概要へ」を項目3に置換
「概要翌日へ」を項目4に置換
「対象年月日曜日」を項目5に置換
「概要気象リンク」を項目6に置換
「対象年月日」を項目7に置換
ファイル内容\ファイル行 = それ
ここまで
##rewite############################
ファイル内容を作成ファイルへ保存
##次のループの準備
ファイル内容は空
行カウント = 0
作成頁カウントに1を直接足す
前日年月日=作成年月日
作成年月日=翌日年月日
####翌日算出
翌日年月日区切=翌日年月日区切に「+0/0/1」を日付加算
処理日配列は配列
区分 = 1 ##0:yyyymmdd 1:yyyy/mm/dd
日付 = 翌日年月日区切
日付書式変換(区分,日付)
処理日配列 = それ
翌日年=処理日配列\1
翌日月=処理日配列\4
翌日日=処理日配列\5
翌日年月日=処理日配列\0
翌日年月日区切=処理日配列\6
ここまで
#### 終了処理 ############################
「{作成頁カウント}頁作成、処理終了」と表示
終了
#######関数
●日付書式変換(区分と日付で)
##0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd
日付配列は配列
もし、区分==0ならば ##yyyymmdd
日付配列\0 =日付 ##yyyymmdd
日付配列\1 =LEFT((日付配列\0),4) ##yyyy
日付配列\2 =LEFT((日付配列\0),6) ##yyyymm
日付配列\3 =MID((日付配列\0),5,4) ##mmdd
日付配列\4 =MID((日付配列\0),5,2) ##mm
日付配列\5 =MID((日付配列\0),7,2) ##dd
日付配列\6 =「{日付配列\1}/{日付配列\4}/{日付配列\5}」 ##yyyy/mm/dd
違えば
日付配列\6 =日付 ##yyyy/mm/dd
日付配列\0 =(日付配列\6)の「/」を「」に置換 ##yyyymmdd
日付配列\1 =LEFT((日付配列\0),4) ##yyyy
日付配列\2 =LEFT((日付配列\0),6) ##yyyymm
日付配列\3 =MID((日付配列\0),5,4) ##mmdd
日付配列\4 =MID((日付配列\0),5,2) ##mm
日付配列\5 =MID((日付配列\0),7,2) ##dd
ここまで
日付配列\7 =LEFT((日付配列\6),7) ##yyyy/mm
日付配列\8 =MID((日付配列\6),6,5) ##mm/dd
日付配列で戻る。
●二択ボタン選択(二択コメント1、二択コメント2、飛び先、処理中止番号)
「{二択コメント1}、{二択コメント2} 再入力しますか?」で二択
もしそれがはいならば
もし、「{飛び先}」<>「」ならば ##飛び先が無い場合この処理の次に制御が移る
「{飛び先}」へ飛ぶ ##飛び先を指定していると再入力ポイントへ飛ぶ
ここまで
違えば
「処理中止{処理中止番号}」と表示
終了
ここまで
※【なでしこ実行モード】cnako
##日別ページリンク設定処理V2 Copy Light ayukawafram
REV=「2.1」 ##2010/02/10 データ入力部分改良
REV=「2.1」 ##2010/02/08 個別リンク日付指定のバグ修正、関数を変更
//REV=「2.0」 ##2010/01/26 関数を使用など全面的に改修
##REV=「1.1」 ##2010/01/26 対象フォルダを本番とテストを切り替え処理を追加
##REV=「1.0」 ##2010/01/22 Create
「V{REV} 日別ページリンク設定処理開始」と言う。
##日別ページhtmlファイルの日別前頁へ、日別次頁へを置換設定
##設定するファイルを指定し、その中で、日別前頁へ、日別次頁へをキーワードごとに置換し設定する
##前頁、次頁のリンクは、自動設定とリンクする日付を指定して手動設定が処理の中で選択できる
##重要##対象フォルダを本番とテストを切り替え###############################
格納フォルダ=「#################\本番\」 ##本番用に格納されているプログラムを使用する場合
##作業フォルダ取得 ##作業ホルダ取得
もし、(格納フォルダ==作業フォルダ取得)ならば
対象フォルダ切り替え=「#################」
「本番フォルダ使用:{対象フォルダ切り替え}」と表示
違えば
対象フォルダ切り替え=「#################」
「テストフォルダ使用:{対象フォルダ切り替え}」と表示
ここまで
#######################################################################
処理日区分 = 今日
処理年月日=処理日区分の「/」を「」に置換
処理時刻区分 = 今
処理時刻=処理時刻区分の「:」を「」に置換
処理日時 = 処理年月日 & 処理時刻 ##バックアップファイルスタンプに使用
日記フォルダ2009=「dairy」
日記フォルダ2010=「diary」
日記フォルダ=日記フォルダ2010
バックアップフォルダ=「#################\{日記フォルダ}\」
##対象ファイル指定処理
##0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd 9:week
##日付配列\0,n:当日、日付配列\1,n:前日、日付配列\2,n:翌日、日付配列\3,n:月末日
自動設定パラ = 0
オンの間
「リンク設定ファイル日付をYYYY/MM/DD形式で指定」と尋ねて、指定パラに代入
もし、指定パラが「」ならば
「処理中止1」と表示
終了
違えば
指定パラを「(####)/([=01|02|03|04|05|06|07|08|09|10|11|12])/(##)」でワイルドカード一致
もし、それがはいならば
指定パラを「/」で区切って「指示年,指示月,指示日」へ変数分配
もし、((指示日>0)AND(指示日<31))ならば
指示年月日=指示年&指示月&「01」
日付配列は配列=空
当前翌月末日曜日算出処理(「0」,指示年月日) //関数呼び出し
日付配列はそれ
もし、(指示日<=日付配列[3,5])ならば //日の値が月末以内
指示年月日=指示年&指示月&指示日
日付配列は配列=空
当前翌月末日曜日算出処理(「0」,指示年月日) //関数呼び出し
日付配列はそれ
対象年=日付配列[0,1]
対象年月=日付配列[0,2]
対象年月日=日付配列[0,0]
対象日=日付配列[0,5]
対象年月日区切=日付配列[0,6]
対象年月末日=日付配列[3,5]
前頁年=日付配列[1,1]
前頁年月=日付配列[1,2]
前頁年月日=日付配列[1,0]
次頁年=日付配列[2,1]
次頁年月=日付配列[2,2]
次頁年月日=日付配列[2,0]
もし、(対象年>2009)ならば
対象フォルダ=日記フォルダ2010
違えば
対象フォルダ=日記フォルダ2009
ここまで
対象フォルダ=対象フォルダ切り替え&「\」&日記フォルダ
対象ファイル=対象フォルダ&「\」&対象年&「\」&対象年月&「\」&日記フォルダ&対象年月日&「.html」
もし、(対象ファイルが存在するか=はい)ならば
抜ける
違えば
二択ボタン選択(「対象ファイルが無い」,「指定値={対象ファイル}」,「」,「1」)
ここまで
違えば
二択ボタン選択(「年月入力値不正(入力日>月末日={月末日})」,「指定値={指定パラ}」,「」,「2」)
ここまで
違えば
二択ボタン選択(「年月入力値不正(入力日>31オーバー)」,「指定値={指定パラ}」,「」,「3」)
ここまで
違えば
二択ボタン選択(「入力値不正(不一致ワイルドカード)」,「指定値={指定パラ}」,「」,「4」)
ここまで
ここまで
ここまで
「対象年月日={対象年月日}、前頁年月日={前頁年月日}、次頁年月日={次頁年月日}」と表示
処理フラグ=0
もし、(前頁年>2009)ならば
前頁日記フォルダ=日記フォルダ2010
違えば
前頁日記フォルダ=日記フォルダ2009
ここまで
もし、(次頁年>2009)ならば
次頁日記フォルダ=日記フォルダ2010
違えば
次頁日記フォルダ=日記フォルダ2009
ここまで
####前頁、次頁リンク日指定処理
「前頁と次頁のリンクをサーチして自動設定しますか?」と二択
もし、(それ==はい)ならば
自動設定パラ = 1
ここまで
//リンク日の指定
もし、(自動設定パラ<>1)ならば
「対象年月日={対象年月日区切}」と表示
処理フラグ=0
(処理フラグ=0)の間 ##間の条件指定は括弧が必要
「前頁(作成しない場合は00)、次頁日付(作成しない場合は99)をDD-DD形式で指定」と尋ねて、指定パラに代入
もし、指定パラが「」ならば
「処理中止5」と表示、終了
ここまで
指定パラを「##-##」でワイルドカード一致
もし、それがはいならば
指定パラを「-」で区切って「前頁日,次頁日」へ変数分配
もし、((前頁日<次頁日)AND(前頁日<対象日)AND(次頁日>対象日))ならば
「テスト={前頁日}-{次頁日}-{対象日}-{対象年月末日}」を表示
もし、((次頁日==「99」)OR(次頁日<=対象年月末日))ならば
もし、((前頁日==「00」)AND(次頁日==「99」))ならば
二択ボタン選択(「入力値不正(両方が指定無し)」,「指定値={指定パラ}」,「」,「6」)
続ける
違えば
//「テスト2={前頁日}-{次頁日}-{対象日}-{対象年月末日}」を表示
前頁年月日=「{対象年月}{前頁日}」
次頁年月日=「{対象年月}{次頁日}」
前頁リンク=「../{前頁年月}/{前頁日記フォルダ}{前頁年月日}.html」
次頁リンク=「../{次頁年月}/{次頁日記フォルダ}{次頁年月日}.html」
処理フラグ=1
ここまで
違えば
二択ボタン選択(「入力値不正(両方が指定無し)」,「指定値={指定パラ}」,「」,「7」)
続ける
ここまで
違えば
二択ボタン選択(「入力値不正(前頁日、次頁日)」,「指定値={指定パラ}」,「」,「8」)
続ける
ここまで
違えば
二択ボタン選択(「入力値不正(前頁日、次頁日)」,「指定値={指定パラ}」,「」,「9」)
続ける
ここまで
ここまで
ここまで
存在フラグ=0
もし、(自動設定パラ==1)ならば ##自動設定処理
サーチカウンタ=0
存在フラグ=0
((存在フラグ=0)AND(サーチカウンタ<100))の間 ##間の条件指定は括弧が必要、ファイルが存在しない場合、100回まではサーチする
サーチカウンタ=サーチカウンタ+1
前頁ファイル=「{対象フォルダ切り替え}\{前頁日記フォルダ}\{前頁年}\{前頁年月}\{前頁日記フォルダ}{前頁年月日}.html」
もし、((前頁ファイルが存在するか)=いいえ)ならば
日付配列は配列
当前翌月末日曜日算出処理(0,前頁年月日)
日付配列=それ
前頁年=日付配列\1,1
前頁年月=日付配列\1,2
前頁年月日=日付配列\1,0
もし、(前頁年>2009)ならば
前頁日記フォルダ=日記フォルダ2010
違えば
前頁日記フォルダ=日記フォルダ2009
ここまで
違えば
「前頁ファイル={前頁ファイル}」と表示
前頁リンク=「../{前頁年月}/{前頁日記フォルダ}{前頁年月日}.html」
存在フラグ=1
ここまで
ここまで
もし、(存在フラグ=0)ならば
前頁日=「00」
違えば
前頁日=日付配列\1,5
ここまで
##次頁サーチ処理
サーチカウンタ=0
存在フラグ=0
((存在フラグ=0)AND(サーチカウンタ<100))の間 ##ファイルが存在しない場合、100回まではサーチする
サーチカウンタ=サーチカウンタ+1
次頁ファイル=「{対象フォルダ切り替え}\{次頁日記フォルダ}\{次頁年}\{次頁年月}\{次頁日記フォルダ}{次頁年月日}.html」
もし、(次頁ファイルが存在するか=いいえ)ならば
日付配列は配列
当前翌月末日曜日算出処理(0,次頁年月日)
日付配列=それ
次頁年=日付配列\2,1
次頁年月=日付配列\2,2
次頁年月日=日付配列\2,0
もし、(次頁年>2009)ならば
次頁日記フォルダ=日記フォルダ2010
違えば
次頁日記フォルダ=日記フォルダ2009
ここまで
違えば
次頁リンク=「../{次頁年月}/{次頁日記フォルダ}{次頁年月日}.html」
存在フラグ=1
ここまで
ここまで
もし、(存在フラグ=0)ならば
次頁日=「99」
違えば
次頁日=日付配列\2,5
ここまで
ここまで
「前頁リンク={前頁リンク}」を表示
「次頁リンク={次頁リンク}」を表示
「対象ファイル={対象ファイル}」を表示
##置換処理
####バックアップ
コピー先ファイル=「{バックアップフォルダ}{対象年}\{対象年月}\{日記フォルダ}{対象年月日}-{処理日時}.html」
ファイル名は対象ファイルから、コピー先ファイルへファイルコピー
「バックアップしました、{コピー先ファイル}」を表示
##ファイル置換処理####
対象ファイルを開く ##対象ファイルを読む
##指定の有無で内容切り替え
もし、(前頁日=「00」)ならば ##前頁が無い場合
違えば
挿入1=「<a href="{前頁リンク}" target="_self">日別前頁({前頁日}日)へ</a>」
「日別前頁へ」を挿入1に置換。
ここまで
「次頁日={次頁日}」を表示
もし、(次頁日 == 99)ならば ##次頁が無い場合
違えば
挿入2=「<a href="{次頁リンク}" target="_self">日別次頁({次頁日}日)へ</a>」
「日別次頁へ」を挿入2に置換
ここまで
##ReWrite処理####
対象ファイルへ保存
##終了処理
「処理正常終了」と表示
終了。
##関数定義
●二択ボタン選択(二択コメント1、二択コメント2、飛び先、作業中止番号)
「{二択コメント1},{二択コメント2} 再入力しますか?」で二択
もし、(それ==はい)ならば
もし、(飛び先<>「」)ならば ##飛び先が無い場合この作業の次に制御が移る
「{飛び先}」へ飛ぶ ##飛び先を指定していると再入力ポイントへ飛ぶ
ここまで
違えば
「作業中止{作業中止番号}」を表示
終了
ここまで
戻る。
●当前翌月末日曜日算出処理(区分と日付で)
/* 2010/02/07 V2 Create COPYLIGHT AYUKAWAFARM
区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列 0,n:0、1,n:1、2,n:翌日、3,n:月末日
日付配列m 0:yyyymmdd 1:yyyy 2:yyyymm 3:mmdd 4:mm 5:dd 6:yyyy/mm/dd 7:yyyy/mm 8:mm/dd 9:week */
日付配列とは配列その値=空
日付処理(区分,日付) //関数呼び出し
日付配列[0]はそれ
年月日区分=日付配列[0,6]に「-0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[1]はそれ
年月日区分=日付配列[0,6]に「+0/0/1」を日付加算
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[2]はそれ
年月日区分=日付配列[0,6]に「+0/1/0」を日付加算
年月日区分=MID(年月日区分,1,7)&「/」&「01」に「-0/0/1」を日付加算 //月末日算出
区分=1
日付処理(区分,年月日区分) //関数呼び出し
日付配列[3]はそれ
日付配列で戻る。 ##関数戻り
●日付処理(区分と年月日で)
//関数呼び出し 区分0:YYYYMMDD 1:YYYY/MM/DD
日付配列とは配列その値=空
もし、(区分==0)ならば ##yyyymmdd
日付配列[0]=年月日 ##yyyymmdd
日付配列[1]=MID(日付配列[0],1,4) ##yyyy
日付配列[4]=MID(日付配列[0],5,2) ##mm
日付配列[5]=MID(日付配列[0],7,2) ##dd
日付配列[6]=日付配列[1]&「/」&日付配列[4]&「/」&日付配列[5] ##yyyy/mm/dd
違えば
日付配列[6]=年月日 ##yyyy/mm/dd
日付配列[0]=日付配列[6]の「/」を「」に置換 ##yyyymmdd
日付配列[6]を「/」で区切って「A,B,C」へ変数分配
日付配列[1]=A
日付配列[4]=B
日付配列[5]=C
ここまで
日付配列[2]=日付配列[1] & 日付配列[4] ##yyyymm
日付配列[3]=日付配列[4] & 日付配列[5] ##mmdd
日付配列[7]=日付配列[1] & 「/」 & 日付配列[4] ##yyyy/mm
日付配列[8]=日付配列[4] & 「/」 & 日付配列[5] ##MM/DD
日付配列[9]=日付配列[6]の曜日
日付配列で戻る。 ##関数戻り
##関数終わり
copyright (c) AyukawaFarm all rights reserved