;-----------------------------------------------------------------------------
; モジュール読みこみ
;-----------------------------------------------------------------------------
#include "Date.as"
;-----------------------------------------------------------------------------
; 画面設定
;-----------------------------------------------------------------------------
Title "泥沼日記"
screen 0,600,385,0
;-----------------------------------------------------------------------------
; 変数準備
;-----------------------------------------------------------------------------
cdir = curdir ; 起動時のカレントフォルダ
MaxFile = 0 ; ファイルの最大保存数
MaxDate = 0 ; 変換する日数
OutPut ="" ; HTML出力先
alloc FileList,30000 ; ファイルの一覧
hDate = "" ; 日付表示用
nDate = "" ; ファイル読みこみ用の日付(形式は"19990705")
WeekType = 0 ; 曜日の表示方法( 0 : 日 , 月 , 火 , 水 , 木 , 金 , 土 )
; ( 1 : SUN , MON , TUE , WED , THU , FRI , SAT )
; ( 2 : Sun , Mon , Tue , Wed , Thu , Fri , Sat )
; ( 3 : sun , mon , tue , wed , thu , fri , sat )
; ( 4 : Sunday , Monday)
; ( 5 : にち,げつ,か,すい,もく,きん,ど)
sYY = 0 ; 処理対象の年
sMM = 0 ; 処理対象の月
sDD = 0 ; 処理対象の日
sWeek = 0 ; 処理対象の曜日(0〜6:日〜土)
aDate = "" ; 今日の日付(形式は"19990705")
e0 = 0 ; 制御変数
e1 = 0 ; 制御変数
e2 = 0
q0 = "" ; 制御変数
q1 = "" ; 制御変数
alloc iList,5000; クリップボードに転送する
iList = "" ; 文字列を格納する変数
isel = 0 ; ↑の選択番号
alloc Buf,99999
alloc Nikki,3000
alloc BufLeft,99999
alloc BufRight,99999
alloc cnvRight,99999
BufLeft = ""
BufRight= ""
Buf = ""
Nikki = ""
FileList= ""
cnvRight= ""
alloc BufLeft,64
alloc BufRight,64
alloc Buf,64
alloc Nikki,64
alloc FileList,64
alloc cnvRight,64
BufLeft = ""
BufRight = ""
Buf = ""
FileList=""
cnvRight = ""
;-----------------------------------------------------------------------------
; Dataフォルダ作成
;-----------------------------------------------------------------------------
alloc FileList,30000
FileList = ""
dirlist FileList,"*.*",5
instr e0,FileList,"Data",0
if e0 == -1 : mkdir "Data"
alloc FileList,30000
FileList = ""
alloc Buf,99999 ; バッファ確保
Buf = "" ; 文字型に変換
e0 = 0
;-----------------------------------------------------------------------------
; セットアップデータロード
;-----------------------------------------------------------------------------
gosub *SetupLoad
;-----------------------------------------------------------------------------
; 日記の最大保存数を超えていた場合削除
;-----------------------------------------------------------------------------
gosub *GetFileList
notemax e0
if MaxFile < e0 {
chdir cdir+"\\Data"
e1 = e0-1
repeat e0 - MaxFile
noteget q0,e1
delete q0
e1 - 1
loop
}
alloc FileList,30000
alloc FileList,64
FileList = ""
;-----------------------------------------------------------------------------
; 今日の日付を取得
;-----------------------------------------------------------------------------
*today
gettime sYY,0 ; 現在の年 を取得
gettime sMM,1 ; 現在の月 を取得
gettime sDD,3 ; 現在の日 を取得
gettime sWeek,2 ; 現在の曜日を取得
aDate = "" + sYY ; 今日の日付代入
if sMM < 10 { aDate+"0"+sMM } else { aDate+""+sMM } ;
if sDD < 10 { aDate+"0"+sDD } else { aDate+""+sDD } ;
aDate + "" + sWeek
nDate = "" + aDate
;------------------------------------------------------------------------------------------------------------------------
; 画面描画
;------------------------------------------------------------------------------------------------------------------------
*saihyoji
cls 1 ; 灰色で塗りつぶし
pos 5,5 : print " "
alloc Nikki,3000
Nikki = ""
mesbox Nikki,489,300,1,3000 ; 文章入力場所表示
objsize 100,50 ; ボタン表示
pos 498, 30 : button "変換" ,*Henkan ;
pos 498, 80 : button "テスト" ,*exeTest ;
objsize 50, 50
pos 498,150 : button "<" , *BackDay ; 前の日に戻る
pos 548,150 : button ">" , *NextDay ; 次の日へ進む
objsize 100,25
pos 498,200 : button "リスト", *SelDateList ; リストから選択したいファイルを選ぶ
objsize 100,30
pos 498,245 : button "設定", *etc_set;
button "ヘルプ", *Help;
objsize 590,23
pos 5,330 : button "↑ 貼りつけ ↑", *parst
objsize 590,37
combox iSel,50,iList
;-----------------------------------------
; 表示やり直し
;-----------------------------------------
*hyoji
chdir cdir+"\\Data" ; データフォルダに移動
exist nDate ; ファイルの有無確認
alloc Nikki,3000 ; バッファ確保
Nikki = "" ; 文字型に変換
exist nDate ; ファイルのサイズ取得
if strsize > -1 { bload nDate,Nikki,strsize } ; ファイルをロード
gosub *set_hyoji_date ; 表示用の日付を作成
redraw 2 ; 描画スイッチOFF
color 192,192,192 ; 色を変える
boxf 5,3,150,50 ; 日付を消す
color 0,0,0 ; 色を戻す
pos 5,3 : print hDate ; 日付表示
objprm 0,Nikki ; 日記内容を再表示
redraw 1 ; 描画スイッチON
stop
;-----------------------------------------------------------------------------
; 貼り付け
;-----------------------------------------------------------------------------
*parst
notesel iList
noteget q0,iSel
objsend 0,$b0,0,e0
strlen e1,Nikki
strlen e2,q0
if e1+e2>3000 == : dialog "テキストの最大サイズを超えてしまいます。",1,"OK?" : stop
alloc BufLeft,e0+64
alloc BufRight,e1-e0+64
BufLeft = ""
BufRight = ""
strmid BufLeft,Nikki,0,e0
strmid BufRight,Nikki,e0,e1-e0
alloc Nikki,3000
Nikki = ""
Nikki = BufLeft + q0 + BufRight
alloc BufLeft,64
alloc BufRight,64
BufLeft = ""
BufRight = ""
objprm 0,Nikki
stop
;-----------------------------------------------------------------------------
; データセーブ
;-----------------------------------------------------------------------------
*data_save
chdir cdir+"\\Data" ; データフォルダに移動
exist nDate ; 以前にデータファイルがあるか確認
if strsize ! -1 : delete nDate ; もしデータファイルがあったら削除
if Nikki == "" : return ; もし文章が書いてなかったら戻る
strlen e0,Nikki ; 文章の長さをもとめる
bsave nDate,Nikki,e0 ; データをセーブ
return ; 戻る
;-----------------------------------------------------------------------------
; 表示用日付を作成
;-----------------------------------------------------------------------------
*set_hyoji_date
hDate = "" + sYY ; 年を代入
hDate+"/"+sMM ; 月を足す
hDate+"/"+sDD ; 日を足す
if sWeek == 0 : hDate + " 日曜日" ;
if sWeek == 1 : hDate + " 月曜日" ; 曜日コードに応じて
if sWeek == 2 : hDate + " 火曜日" ;
if sWeek == 3 : hDate + " 水曜日" ; 全角スペースと曜日を足す
if sWeek == 4 : hDate + " 木曜日" ;
if sWeek == 5 : hDate + " 金曜日" ;
if sWeek == 6 : hDate + " 土曜日" ;
return ; 戻る
;-----------------------------------------------------------------------------
; 読みこみ用日付を作成
;-----------------------------------------------------------------------------
*set_load_date
nDate = "" + sYY ; 年を代入
if sMM < 10 { nDate+"0"+sMM } else { nDate+""+sMM } ; 月を足す
if sDD < 10 { nDate+"0"+sDD } else { nDate+""+sDD } ; 日を足す
nDate+""+sWeek
return ; 戻る
;------------------------------------------------------------------------------------------------------------------------
; 前の日に戻る
;------------------------------------------------------------------------------------------------------------------------
*BackDay
gosub *data_save ; とりあえずセーブ
DateBack sYY,sMM,sDD
nDate = "" + refstr
if sWeek == 0 { sWeek = 6 } else { sWeek-- } ; 曜日を戻す
nDate + "" + sWeek
strmid q0,nDate,0,4
sYY = 0 + q0
strmid q0,nDate,4,2
sMM = 0 + q0
strmid q0,nDate,6,2
sDD = 0 + q0
goto *hyoji
;------------------------------------------------------------------------------------------------------------------------
; 次の日に進む
;------------------------------------------------------------------------------------------------------------------------
*NextDay
if nDate == aDate : stop ; 現在表示しているものが
; 今日の日付だったら戻る
gosub *data_save ; とりあえずセーブ
DateNext sYY,sMM,sDD
nDate = "" + refstr
if sWeek == 6 { sWeek = 0 } else { sWeek++ } ; 曜日を戻す
nDate + "" + sWeek
strmid q0,nDate,0,4
sYY = 0 + q0
strmid q0,nDate,4,2
sMM = 0 + q0
strmid q0,nDate,6,2
sDD = 0 + q0
goto *hyoji
;------------------------------------------------------------------------------------------------------------------------
; リストから選択
;------------------------------------------------------------------------------------------------------------------------
*SelDateList
gosub *data_save ; とりあえずセーブ
gosub *GetFileList
if FileList == "" : stop
cls 1
alloc Buf,99999
Buf = ""
repeat e0
noteget q0,cnt
strmid q1,q0,0,4
Buf + q1 + " / "
strmid q1,q0,4,2
Buf + q1 + " / "
strmid q1,q0,6,2
Buf + q1
strmid q1,q0,8,1
if q1 = "0" : Buf + " ( 日 )\n"
if q1 = "1" : Buf + " ( 月 )\n"
if q1 = "2" : Buf + " ( 火 )\n"
if q1 = "3" : Buf + " ( 水 )\n"
if q1 = "4" : Buf + " ( 木 )\n"
if q1 = "5" : Buf + " ( 金 )\n"
if q1 = "6" : Buf + " ( 土 )\n"
loop
pos 5,5 : print "表示したい日を選択して下さい"
objsize 590
listbox e0,300,Buf
objsize 295,40
pos 5,340 : button "選択した日を表示",*SelDateList2
pos 300,340 : button "キャンセル" ,*saihyoji
stop
*SelDateList2
if e0 == -1 : stop
sYY = ""
sMM = ""
sDD = ""
sWeek = ""
noteget nDate,e0
strmid sYY ,nDate,0,4
strmid sMM ,nDate,4,2
strmid sDD ,nDate,6,2
strmid sWeek,nDate,8,1
sYY = 0 + sYY
sMM = 0 + sMM
sDD = 0 + sDD
sWeek = 0 + sWeek
alloc FileList,64
goto *saihyoji
;-----------------------------------------------------------------------------
; 終了処理
;-----------------------------------------------------------------------------
*owari
gosub *data_save ; とりあえずセーブ
end
;------------------------------------------------------------------------------------------------------------------------
; その他の設定
;------------------------------------------------------------------------------------------------------------------------
*etc_set
gosub *data_save ; とりあえずセーブ
*etc_set2
cls 1
pos 5,5
print "日記ファイルの出力先"
mesbox OutPut,520,25,1
objsize 60 : pos 533,24 : button "参照",*output_cg
pos 15, 60 : print "曜日の表示形式"
pos 180, 55 : objsize 415 : combox WeekType,100,"( 0 : 日 , 月 , 火 , 水 , 木 , 金 , 土 )\n( 1 : SUN , MON , TUE , WED , THU , FRI , SAT )\n( 2 : Sun , Mon , Tue , Wed , Thu , Fri , Sat )\n( 3 : sun , mon , tue , wed , thu , fri , sat )\n( 4 : Sunday , Monday .... )\n( 5 : にち, げつ, か , すい, もく, きん, ど )"
pos 15, 91 : print "変換する最大ログ数 日分"
pos 235, 87 : input MaxDate,25,,2
pos 15,121 : print "保存する日記のファイル数 日分(この数をこえた日記は削除されます)"
pos 227,118 : input MaxFile,33,,4
pos 5,150 : mesbox iList,590,180,1
objsize 196,30 : pos 5,350 : button "テンプレート編集", *tempHensyu
pos 202,350 : button "決定" , *etc_set_end
pos 399,350 : button "キャンセル" , *etc_set_end2
stop
;-----------------------------------------------------------------------------
; 出力先を選択
;-----------------------------------------------------------------------------
*output_cg
dialog "html",17,"日記ファイル"
if stat == 0 : stop
OutPut = refstr
strlen e0,q0
chdir cdir+"\\Setup"
bsave "OutPut.ToT",OutPut,e0
goto *etc_set2
;-----------------------------------------------------------------------------
; 設定完了
;-----------------------------------------------------------------------------
*etc_set_end
chdir cdir+"\\Setup"
if MaxDate < 1 : dialog "変換する最大ログ数は1以下にはできません" ,1,"入力し直してください" : stop
if MaxDate > 31 : dialog "変換する最大ログ数は31以下にはできません" ,1,"入力し直してください" : stop
if MaxFile < 1 : dialog "保存する日記のファイル数は1以下にはできません" ,1,"入力し直してください" : stop
if OutPut == "" : dialog "出力先を設定していません" ,1,"入力し直してください" : stop
if iList == "" : dialog "貼り付け用のリストはNullで保存できません" ,1,"入力し直してください" : stop
bsave "log.ToT" ,MaxDate ; ログ数をロード
bsave "Week.ToT" ,WeekType ; 曜日の表示形式
bsave "MaxFile.ToT" ,MaxFile ; ファイルの最大保存数
strlen e0,OutPut
bsave "OutPut.ToT" ,OutPut ,e0 ; 出力先をロード
strlen e0,iList
bsave "iList.ToT",iList ,e0 ; 挿入文字
goto *saihyoji
;-----------------------------------------------------------------------------
; 設定キャンセル
;-----------------------------------------------------------------------------
*etc_set_end2
gosub *SetupLoad
goto *saihyoji
;-----------------------------------------------------------------------------
; 設定キャンセル
;-----------------------------------------------------------------------------
*tempHensyu
chdir cdir+"\\Setup"
exec "TempFile.txt",16
stop
;-----------------------------------------------------------------------------
; 設定ファイルロード
;-----------------------------------------------------------------------------
*SetupLoad
chdir cdir+"\\Setup" ; セットアップに移動
exist "OutPut.ToT" : if strsize > 0 : bload "OutPut.ToT" ,OutPut ,strsize ; 出力先をロード
exist "log.ToT" : if strsize > 0 : bload "log.ToT" ,MaxDate ,strsize ; ログ数をロード
exist "Week.ToT" : if strsize > 0 : bload "Week.ToT" ,WeekType ,strsize ; 曜日の表示形式
exist "MaxFile.ToT" : if strsize > 0 : bload "MaxFile.ToT" ,MaxFile ,strsize ; ファイルの最大保存数
alloc iList,5000; クリップボードに転送する
iList = "" ; 文字列を格納する変数
exist "iList.ToT" : if strsize > 0 : bload "iList.ToT" ,iList ,strsize ; 挿入文字
return
;-----------------------------------------------------------------------------
; ファイルリスト取得&ソート
;-----------------------------------------------------------------------------
*GetFileList
alloc FileList,30000 ; ファイルの一覧
FileList=""
notesel FileList
chdir cdir+"\\Data"
dirlist FileList,"*.*",1
notemax e0
if e0 < 2 : return
repeat e0-1
e1 = cnt
repeat e0-e1,e1+1
q0 = ""
q1 = ""
noteget q0,e1
noteget q1,cnt
q0 = 0+q0
q1 = 0+q1
if q0 < q1 { q0 = "" +q0 : q1 = "" +q1 : noteadd q0,cnt,1 : noteadd q1,e1,1 }
q0 = ""
q1 = ""
loop
loop
*GetFileList2
return
;------------------------------------------------------------------------------------------------------------------------
; ヘルプ表示
;------------------------------------------------------------------------------------------------------------------------
*Help
chdir cdir+"\\Help"
exist "index.html"
if strsize > 0 : exec "index.html",16
stop
;------------------------------------------------------------------------------------------------------------------------
; テスト
;------------------------------------------------------------------------------------------------------------------------
*exeTest
exist OutPut
if strsize > 0 : exec OutPut,16
stop
;------------------------------------------------------------------------------------------------------------------------
; 変換開始
;------------------------------------------------------------------------------------------------------------------------
*Henkan
gosub *data_save ; とりあえずセーブ
gosub *GetFileList
if FileList == "" : dialog "日記のデータがありません",1,"日記を書いてから変換して下さい" : stop
chdir cdir+"\\Setup"
exist "TempFile.txt"
FileSize = strsize
if FileSize < 0 : dialog "テンプレートファイルがありません",1,"Setup\\TempFile.txtを書いてから変換して下さい\nわからない場合はホームページにおいてあるものを使ってください" : stop
alloc Nikki,64 ; 負荷を減らす
alloc Buf,99999 : Buf = ""
bload "TempFile.txt", Buf , FileSize
notesel FileList
noteget q0,0
strmid q1,q0,0,4 ; "199901025" -> "1999"
strmid q0,q0,4,4 ; "199901025" -> "0102"
q0 = q1 + "/" + q0 ; "1999"+"/"+"0102" -> "1999/0102"
strmid q1,q0,0,7 ; "1999/0102" -> "1999/01"
strmid q0,q0,7,2 ; "1999/0102" -> "02"
q0 = q1 + "/" + q0
instr e0,Buf,"" : if e0 == -1 : goto *OneDayLoopsCut
alloc BufLeft,e0+64
alloc BufRight,FileSize-e0+51
BufLeft = ""
BufRight = ""
strmid BufLeft,Buf,0,e0
strmid BufRight,Buf,e0+13,FileSize-e0-13
alloc Buf,99999 : Buf = "" + BufLeft + "" + BufRight
*OneDayLoopsCut
strlen FileSize , Buf
alloc BufRight,64 ;メモリの負荷を減らす
;/////////////////////////HTMLループの前データ保存
instr e0,Buf,""
alloc BufLeft , e0+64
BufLeft = ""
strmid BufLeft,Buf,0,e0
chdir cdir
bsave "TEMP.L",BufLeft,e0
;/////////////////////////HTMLループの前データを削除
alloc BufLeft , FileSize
BufLeft = "" + Buf
alloc Buf,99999 : Buf = ""
strmid Buf,BufLeft,e0+23,FileSize-e0-23
;/////////////////////////HTMLループの中央データ保存
instr e0,Buf,""
alloc BufLeft , e0+64
BufLeft = ""
strmid BufLeft,Buf,0,e0
bsave "TEMP.C",BufLeft,e0
;/////////////////////////HTMLループの中央データを削除
alloc BufLeft , FileSize
BufLeft = "" + Buf
alloc Buf,99999 : Buf = ""
strmid Buf,BufLeft,e0+21,FileSize-e0-21
;/////////////////////////HTMLループの後データ保存
strlen e0,Buf
bsave "TEMP.R",Buf,e0
;/////////////////////////HTMLループの準備
alloc Buf,99999 : Buf = ""
notemax e0 : if MaxDate > e0 : MaxDate = e0 ;変換数を設定
e0 = 0 ; ファイルリスト中の現在実行している行
e1 = 0 ; Buf の サイズ と 検索開始位置
*OneDayLoops
strlen e1,Buf
chdir cdir
exist "TEMP.C"
FileSize = strsize
alloc BufLeft,FileSize + 64 : BufLeft = ""
bload "TEMP.C",BufLeft,strsize
Buf = Buf + BufLeft
;/////////////////////////年置換
instr e2 , Buf , "" , e1
if e2 == -1 : goto *SkipYYYY
alloc BufLeft , e2+e1+65 : BufLeft = ""
alloc BufRight , FileSize+e2+51 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+13,FileSize+e1-e2-13
noteget q0,e0
strmid q0,q0,0,4
alloc Buf,99999
Buf = ""+BufLeft + q0 + BufRight
FileSize - 9
*SkipYYYY
;/////////////////////////月置換
instr e2 , Buf , "" , e1
if e2 == -1 : dialog "テンプレートファイルが異常です\n\nがありません",1,"強制終了します": end
alloc BufLeft , e2 + e1+64 : BufLeft = ""
alloc BufRight , FileSize+e2+51 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+11,FileSize+e1-e2-11
noteget q0,e0
strmid q0,q0,4,2
alloc Buf,99999
Buf = ""+BufLeft + q0 + BufRight
FileSize - 9
;/////////////////////////日置換
instr e2 , Buf , "" , e1
if e2 == -1 : dialog "テンプレートファイルが異常です\n\nがありません",1,"強制終了します": end
alloc BufLeft , e2+e1+64 : BufLeft = ""
alloc BufRight , FileSize+e2+51 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+11,FileSize+e1-e2-11
noteget q0,e0
strmid q0,q0,6,2
alloc Buf,99999
Buf = ""+BufLeft + q0 + BufRight
FileSize - 9
;/////////////////////////曜日置換
instr e2 , Buf , "" , e1
if e2 == -1 : goto *SkipWeek
alloc BufLeft , e2+e1+64 : BufLeft = ""
alloc BufRight , FileSize+e2+51 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+13,FileSize+e1-e2-13
noteget q0,e0
strmid q0,q0,8,1
alloc Buf,99999
; 曜日の表示方法( 0 : 日 , 月 , 火 , 水 , 木 , 金 , 土 )
; ( 1 : SUN , MON , TUE , WED , THU , FRI , SAT )
; ( 2 : Sun , Mon , Tue , Wed , Thu , Fri , Sat )
; ( 3 : sun , mon , tue , wed , thu , fri , sat )
; ( 4 : Sunday , Monday)
; ( 5 : にち,げつ,か,すい,もく,きん,ど)
if WeekType == 0 {
if q0 == "0" { q0 = "日" }
if q0 == "1" { q0 = "月" }
if q0 == "2" { q0 = "火" }
if q0 == "3" { q0 = "水" }
if q0 == "4" { q0 = "木" }
if q0 == "5" { q0 = "金" }
if q0 == "6" { q0 = "土" }
FileSize - 11
}
if WeekType == 1 {
if q0 == "0" { q0 = "SUN" }
if q0 == "1" { q0 = "MON" }
if q0 == "2" { q0 = "TUE" }
if q0 == "3" { q0 = "WED" }
if q0 == "4" { q0 = "THU" }
if q0 == "5" { q0 = "FRI" }
if q0 == "6" { q0 = "SAT" }
FileSize - 10
}
if WeekType == 2 {
if q0 == "0" { q0 = "Sun" }
if q0 == "1" { q0 = "Mon" }
if q0 == "2" { q0 = "Tue" }
if q0 == "3" { q0 = "Wed" }
if q0 == "4" { q0 = "Thu" }
if q0 == "5" { q0 = "Fri" }
if q0 == "6" { q0 = "Sat" }
FileSize - 10
}
if WeekType == 3 {
if q0 == "0" { q0 = "sun" }
if q0 == "1" { q0 = "mon" }
if q0 == "2" { q0 = "tue" }
if q0 == "3" { q0 = "wed" }
if q0 == "4" { q0 = "thu" }
if q0 == "5" { q0 = "fri" }
if q0 == "6" { q0 = "sat" }
FileSize - 10
}
if WeekType == 4 {
if q0 == "0" { q0 = "Sunday" : FileSize - 7 }
if q0 == "1" { q0 = "Monday" : FileSize - 7 }
if q0 == "2" { q0 = "Tuesday" : FileSize - 6 }
if q0 == "3" { q0 = "Wednesday" : FileSize - 4 }
if q0 == "4" { q0 = "Thursday" : FileSize - 5 }
if q0 == "5" { q0 = "Friday" : FileSize - 7 }
if q0 == "6" { q0 = "Saturday" : FileSize - 5 }
}
if WeekType == 5 {
if q0 == "0" { q0 = "にち" : FileSize - 9 }
if q0 == "1" { q0 = "げつ" : FileSize - 9 }
if q0 == "2" { q0 = "か" : FileSize - 11 }
if q0 == "3" { q0 = "すい" : FileSize - 9 }
if q0 == "4" { q0 = "もく" : FileSize - 9 }
if q0 == "5" { q0 = "きん" : FileSize - 9 }
if q0 == "6" { q0 = "ど" : FileSize - 11 }
}
Buf = ""+BufLeft + q0 + BufRight
*SkipWeek
;/////////////////////////日記ファイル置換
instr e2 , Buf , "" , e1
if e2 == -1 : dialog "テンプレートファイルが異常です\n\nがありません",1,"強制終了します": end
alloc BufLeft , e2+e1+64 : BufLeft = ""
alloc BufRight , FileSize+e2+51 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+14,FileSize+e1-e2-14
alloc Buf,99999
Buf = ""+BufLeft
noteget q0,e0
chdir cdir + "\\Data"
exist q0
alloc BufLeft,strsize+64
BufLeft = ""
bload q0,BufLeft,strsize
strlen e1,Buf
Buf + BufLeft
strlen FileSize,BufRight ; BufRightを
alloc cnvRight,FileSize+64 ; cnvRightに
cnvRight = "" + BufRight ; 退避
strlen FileSize,Buf
;//////改行コードのコンバート
*cnvStart
instr e2 , Buf , "\n" , e1
if e2 == -1 : goto *cnvEnd
alloc BufLeft , e2+e1+64 : BufLeft = ""
alloc BufRight , FileSize+e2+62 : BufRight = ""
strmid BufLeft ,Buf,0,e2+e1
strmid BufRight,Buf,e1+e2+2,FileSize+e1-e2-2
alloc Buf,99999
Buf = ""+BufLeft + "
" + BufRight
FileSize + 2
goto *cnvStart
*cnvEnd
Buf + cnvRight
e0 ++
if MaxDate > e0 : goto *OneDayLoops
strlen e0,Buf
chdir cdir
bsave "TEMP.C",Buf,e0
exist "TEMP.L" : e0 + strsize
alloc BufLeft , strsize+64 : BufLeft = ""
bload "TEMP.L",BufLeft,strsize
exist "TEMP.R" : e0 + strsize
alloc BufRight , strsize+64 : BufRight = ""
bload "TEMP.R",BufRight,strsize
exist "TEMP.C"
alloc Buf , 99999 : Buf = ""
bload "TEMP.C",Buf,strsize
Buf = BufLeft + Buf + BufRight
strlen e0 , Buf
bsave OutPut,Buf,e0
dialog "変換しました",0,"変換終了です(^^)/"
gosub *SetupLoad
alloc Buf,99999
alloc BufLeft,99999
alloc BufRight,99999
alloc cnvRight,99999
alloc Buf,64
alloc BufLeft,64
alloc BufRight,64
alloc FileList,64
alloc cnvRight,64
BufLeft = ""
BufRight = ""
Buf = ""
FileList =""
cnvRight = ""
chdir cdir
delete "TEMP.L"
delete "TEMP.C"
delete "TEMP.R"
e0 = 0
e1 = 0
e2 = 0
q0 = 0
q1 = 0
FileSize = 0
goto *saihyoji
;///////デバック用スクリプト
if e0 == 1 : cls 1 : mesbox Buf , 500,400,1 : stop