;----------------------------------------------------------------------------- ; モジュール読みこみ ;----------------------------------------------------------------------------- #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