#uselib "Srexhsp.dll" #func active active 2 #func dragmode dragmode 2 #func getsysfol getsysfol 3 #func menuadd menuadd 6 #func menuset menuset 2 #func menuchk menuchk 0 #func menuopt menuopt 0 #func menudsp menudsp 2 #func selfoldlg selfoldlg $16 #func toolcmd toolcmd 0 #include "srdandd.as" str name:str fname:str loca:str data:str fsize str forder:forder=""+curdir+"\\hand" str desk:getsysfol desk,16 clear=" " str sub:str dos_flag:str signature int length:int filesize:key=0:dim z,4 sdim buf,32*1024:buf="" mod_dd_accept buf,ddacpt skiperr 1 bgscr 5,100,70,0,dispx,dispy:title "処理中" color 100,90,180:boxf 0,0,100,70:color 0,0,10:boxf 3,3,96,66 font "HG丸ゴシックM-PRO",27:color 255,255,0:pos 11,18:mes "処理中":gsel 5,-1:width ,,dispx/2-50,dispy/2-100 screen 7,250,230,0,dispx,dispy gsel 7,-1:gsel 0,-1:cls:title "Hand Dividing":width 150,150:color 10,0,40:boxf 0,0,150,150 menuset 1 menuadd "変換する (&O)",5000 menuadd "復元する (&R)",5001 menuadd "",,$800 menuadd "終了 (&X)",5005 menuset 2 menuadd "設定変更 (&S)",5101 menuset:menuadd "ファイル(&F)",1,$10:menuadd "オプション(&P)",2,$10:menudsp gettime p,4:p=p\12 color 110,100,200 if p=0:font "Modern",41,2 if p=1:font "Modern",41,6 if p=2:font "Modern",41,7 if p=3:font "Impact",36,2 if p=4:font "Impact",36,6 if p=5:font "Impact",36,7 if p=6:font "Arial Black",30,2 if p=7:font "Arial Black",28,7 if p=8:font "Century",31,1 if p=9:font "Century",31,3 if p=10:font "Century",31,5 if p=11:font "Century",31,7 pos 8,17:mes "Hand":mes "Dividing" gsel 0,1:wait 1 *st wait 2 toolcmd:q=stat:if q!0:goto *menu_cmd if ddacpt!=0:goto *dd stick key,64,1 if key=64 { getkey key,79 if key=1 {goto *change} getkey key,82 if key=1 {goto *re} getkey key,83 if key=1 {goto *config} getkey key,88 if key=1 {goto *ending} } goto *st *menu_cmd if q=5000:goto *change if q=5001:goto *re if q=5101:goto *config if q=5005:goto *ending goto *st *dd active if ddacpt.0>1 {dialog "ファイルは一つにしてください",1:ddacpt=0:goto *st} ddacpt=0 strlen q,buf:q-=2:strmid name,buf,0,q ;末尾に\nがついているので外す bload name,signature,4,0 if signature!"HDDV" {exist name:flag2=strsize:goto *chan_2} else {goto *re_2} *change chdir desk dialog "",16,"すべてのファイル" if stat=0:goto *st exist refstr:flag2=strsize if flag2>506250000 {dialog "サイズオーバーです",1:goto *st} if flag2<0 {dialog "ファイルが見つかりません",1:goto *st} name=refstr *chan_2 strlen length,name:name=name+"\n":length+=2 chdir forder *chang2 exist "file.ini" if strsize>15 {bload "file.ini",data,63,13:instr p,data,"\n",0 if p=-1 {dialog "設定ファイルが壊れているので\n初期設定に戻します",1:delete "file.ini":goto *chang2} p+=15} else {bcopy "NowWorking.exe","file.ini":data="2\n07\n0000\nC:\\WINDOWS\\デスクトップ\n" bsave "file.ini",data,34,0:p=34} str size flag=flag2/3375000:gosub *char:fsize=size flag=flag2/22500\150:gosub *char:fsize=fsize+size flag=flag2/150\150:gosub *char:fsize=fsize+size flag=flag2\150:gosub *char:fsize=fsize+size fsize=fsize+"\n":wait 1 bsave "file.ini",fsize,6,7 bsave "file.ini",name,length,p bsave "file.ini",clear,63,length+p:wait 1 gsel 0,-1:gsel 5,2:wait 1 exist "_123flag_" if strsize>0:delete "_123flag_" bcopy "file.ini","_123flag_":dos_flag="8":bsave "_123flag_",dos_flag,1:wait 2 exec "NowWorking.exe",2 wait 50:p=filesize/1500 if p>0:wait p repeat:bload "_123flag_",dos_flag,1,0 if dos_flag!"8":break wait 50:loop gsel 5,-1:wait 1 chdir forder:exist "_123flag_" if strsize>0 {str flag:bload "_123flag_",flag:int flag if flag=1 {dialog "file.iniが見つかりません",1} if flag=2 {dialog "指定されたファイルが見つかりませんでした",1} if flag=3 {dialog "ファイルが作成できませんでした",1} delete "_123flag_" } exist "_temp_" if strsize>0:delete "_temp_" wait 10:gsel 0,1:goto *st *re chdir desk dialog "",16,"すべてのファイル" if stat=0:goto *st exist refstr:filesize=strsize if filesize<0 {dialog "ファイルが見つかりません",1:goto *st} name=refstr bload name,signature,4,0 if signature!"HDDV" {dialog "ファイル形式が違います",1:goto *st} *re_2 repeat 4:bload name,flag,1,cnt+4 if flag<127:flag-=33:else:flag-=67 z.cnt=flag:loop flag2=(z.0*3375000)+(z.1*22500)+(z.2*150)+z.3 bload name,flag,1,8 ;ここから3行、対象ファイル読み取り if flag<127:flag-=32:else:flag-=66 ;0はないのでさっきより1多い bload name,sub,flag,9:strmid fname,sub,0,flag strlen length,name:name=name+"\n":length+=2 chdir forder *re2 exist "file.ini" if strsize>15 {bload "file.ini",data,63,13:instr p,data,"\n",0 if p=-1 {dialog "設定ファイルが壊れているので\n初期設定に戻します",1:delete "file.ini":goto *re2} bload "file.ini",loca,p,13:p+=15} else {bcopy "NowWorking.exe","file.ini" data="2\n07\n0000\nC:\\WINDOWS\\デスクトップ\n":bsave "file.ini",data,34,0:loca="C:\\WINDOWS\\デスクトップ":p=34} bsave "file.ini",name,length,p bsave "file.ini",clear,63,length+p:wait 1 gsel 0,-1:gsel 5,2:wait 1 exist "_123flag_" if strsize>0:delete "_123flag_" bcopy "file.ini","_123flag_":dos_flag="9":bsave "_123flag_",dos_flag,1:wait 2 exec "NowWorking.exe",2 wait 50:p=filesize/1500 if p>0:wait p repeat:bload "_123flag_",dos_flag,1,0 if dos_flag!"9":break wait 50:loop gsel 5,-1:wait 1 p=0:repeat:instr flag,fname,"_",p+1 if flag=-1:break p=p+flag+1:loop if p!0 {str size:strlen flag,fname:strmid size,fname,0,p:p+1:flag-=p:strmid fsize,fname,p,flag:fname=size+"_."+fsize } else {fname=fname+"_"} wait 1:chdir loca:exist fname if strsize!flag2:dialog "復元に失敗しました",1 chdir forder:exist "_123flag_" if strsize>0 {str flag:bload "_123flag_",flag:int flag if flag=1 {dialog "file.iniが見つかりません",1} if flag=2 {dialog "指定されたファイルが見つかりませんでした",1} if flag=3 {dialog "ファイルが作成できませんでした",1} if flag=4 {dialog "指定されたファイルは読み取れません",1} delete "_123flag_" } exist "_temp_" if strsize>0:delete "_temp_" wait 10:gsel 0,1:goto *st *config ginfo 2:gsel 7,0:width ,,prmx,prmy:cls:color 10,0,40:boxf 0,0,250,230:title "設定変更":objmode 2 chdir forder:exist "file.ini" if strsize<15 {bcopy "NowWorking.exe","file.ini":data="2\n07\n0000\n":bsave "file.ini",data,13:size=2:max=7 loca="C:\\WINDOWS\\デスクトップ":data=loca+"\n":bsave "file.ini",data,21,13} else { str size:str max:bload "file.ini",size,1,0:bload "file.ini",max,2,3:int size:int max bload "file.ini",data,63,13:instr length,data,"\n",0 if length=-1 {dialog "設定ファイルが壊れているので\n初期設定に戻します",1:delete "file.ini":goto *config} strmid loca,data,0,length} flag=size:flag2=max:str flag3:flag3=loca:wait 1 color 150,150,200:font "MS Pゴシック",12:pos 12,15:mes "分割するサイズは?" pos 11,63:mes "最大いくつまで分割する?":pos 12,113:mes "出力先は?" pos 10,130:input flag3,220,18,63:objsize 36,18:pos 180,155:button "参照",*selfol font "MS Pゴシック",15:pos 184,70:mes "個" objsize 97,30:font "HG創英角ゴシックUB",15 pos 128,12:combox flag,110,"30KB\n50KB\n100KB\n500KB\n1MB\n1.4MB\n3MB\n5MB\n分割しない" pos 155,63:input flag2,26,24,2:font "HG創英角ゴシックUB",12:objsize 66,20:pos 90,195:button "OK",*conwrite pos 165,195:button "キャンセル",*st0 wait 1:gsel 0,-1:gsel 7,1:wait 1 stop *selfol selfoldlg "任意のフォルダを選択して下さい。",0 if stat!1:flag3=refstr objprm 0,flag3 stop *conwrite if flag2<1:goto *config if flag2=1 {dialog "“分割しない”に設定します",0:flag=8} if flag!size {size=flag:str size:bsave "file.ini",size,1,0:int size} if flag2!max {max=flag2:str max:if flag2<10 {max="0"+max} bsave "file.ini",max,2,3:int max} if flag3!loca {flag3=flag3+"\n":strlen length,flag3:bsave "file.ini",flag3,length,13 bsave "file.ini",clear,63,length+13} wait 2:gsel 7,-1:gsel 0,1:wait 3 goto *st *st0 gsel 7,-1:gsel 0,1:wait 1 goto *st *char if flag<10 { if flag=0 {size="!"} if flag=1 {size="\""} if flag=2 {size="#"} if flag=3 {size="$"} if flag=4 {size="%"} if flag=5 {size="&"} if flag=6 {size="'"} if flag=7 {size="("} if flag=8 {size=")"} if flag=9 {size="*"} } if (flag>9)&(flag<25) { if flag=10 {size="+"} if flag=11 {size=","} if flag=12 {size="-"} if flag=13 {size="."} if flag=14 {size="/"} ; if (flag>14)&(flag<25) {int size:size=flag-15:str size} if flag>14 {int size:size=flag-15:str size} } if (flag>24)&(flag<41) { if flag=25 {size=":"} if flag=26 {size=";"} if flag=27 {size="<"} if flag=28 {size="="} if flag=29 {size=">"} if flag=30 {size="?"} if flag=31 {size="@"} if flag=32 {size="A"} if flag=33 {size="B"} if flag=34 {size="C"} if flag=35 {size="D"} if flag=36 {size="E"} if flag=37 {size="F"} if flag=38 {size="G"} if flag=39 {size="H"} if flag=40 {size="I"} } if (flag>40)&(flag<56) { if flag=41 {size="J"} if flag=42 {size="K"} if flag=43 {size="L"} if flag=44 {size="M"} if flag=45 {size="N"} if flag=46 {size="O"} if flag=47 {size="P"} if flag=48 {size="Q"} if flag=49 {size="R"} if flag=50 {size="S"} if flag=51 {size="T"} if flag=52 {size="U"} if flag=53 {size="V"} if flag=54 {size="W"} if flag=55 {size="X"} } if (flag>55)&(flag<71) { if flag=56 {size="Y"} if flag=57 {size="Z"} if flag=58 {size="["} if flag=59 {size="\\"} if flag=60 {size="]"} if flag=61 {size="^"} if flag=62 {size="_"} if flag=63 {size="`"} if flag=64 {size="a"} if flag=65 {size="b"} if flag=66 {size="c"} if flag=67 {size="d"} if flag=68 {size="e"} if flag=69 {size="f"} if flag=70 {size="g"} } if (flag>70)&(flag<86) { if flag=71 {size="h"} if flag=72 {size="i"} if flag=73 {size="j"} if flag=74 {size="k"} if flag=75 {size="l"} if flag=76 {size="m"} if flag=77 {size="n"} if flag=78 {size="o"} if flag=79 {size="p"} if flag=80 {size="q"} if flag=81 {size="r"} if flag=82 {size="s"} if flag=83 {size="t"} if flag=84 {size="u"} if flag=85 {size="v"} } if (flag>85)&(flag<101) { if flag=86 {size="w"} if flag=87 {size="x"} if flag=88 {size="y"} if flag=89 {size="z"} if flag=90 {size="{"} if flag=91 {size="|"} if flag=92 {size="}"} if flag=93 {size="~"} if flag=94 {size="。"} if flag=95 {size="「"} if flag=96 {size="」"} if flag=97 {size="、"} if flag=98 {size="・"} if flag=99 {size="ヲ"} if flag=100 {size="ァ"} } if (flag>100)&(flag<116) { if flag=101 {size="ィ"} if flag=102 {size="ゥ"} if flag=103 {size="ェ"} if flag=104 {size="ォ"} if flag=105 {size="ャ"} if flag=106 {size="ュ"} if flag=107 {size="ョ"} if flag=108 {size="ッ"} if flag=109 {size="ー"} if flag=110 {size="ア"} if flag=111 {size="イ"} if flag=112 {size="ウ"} if flag=113 {size="エ"} if flag=114 {size="オ"} if flag=115 {size="カ"} } if (flag>115)&(flag<131) { if flag=116 {size="キ"} if flag=117 {size="ク"} if flag=118 {size="ケ"} if flag=119 {size="コ"} if flag=120 {size="サ"} if flag=121 {size="シ"} if flag=122 {size="ス"} if flag=123 {size="セ"} if flag=124 {size="ソ"} if flag=125 {size="タ"} if flag=126 {size="チ"} if flag=127 {size="ツ"} if flag=128 {size="テ"} if flag=129 {size="ト"} if flag=130 {size="ナ"} } if (flag>130)&(flag<141) { if flag=131 {size="ニ"} if flag=132 {size="ヌ"} if flag=133 {size="ネ"} if flag=134 {size="ノ"} if flag=135 {size="ハ"} if flag=136 {size="ヒ"} if flag=137 {size="フ"} if flag=138 {size="ヘ"} if flag=139 {size="ホ"} if flag=140 {size="マ"} } if flag>140 { if flag=141 {size="ミ"} if flag=142 {size="ム"} if flag=143 {size="メ"} if flag=144 {size="モ"} if flag=145 {size="ヤ"} if flag=146 {size="ユ"} if flag=147 {size="ヨ"} if flag=148 {size="ラ"} if flag=149 {size="リ"} } return *rechar if flag<127:flag-=33:else:flag-=67 return *ending wait 1:end