<SCRIPT LANGUAGE="javascript">
<!--
function main(flg){
bunsho=document.genko.screen.value;
tate=document.genko.tate.value-0;
yoko=document.genko.yoko.value-0;
if(flg==1){
kekka4=outstr(bunsho, tate);
document.write(tate+" × "+yoko);
document.write("<BR><BR>"+kekka4);
}
else{
kekka1=cntmoji(bunsho);
kekka2=cntline(bunsho, tate);
kekka3=cntpage(kekka2, yoko);
document.write("<BR>文字数"+kekka1);
document.write("<BR>行数"+kekka2);
document.write("<BR>枚数"+kekka3);
}
}
/////////文字数を数える//////////////////////////
function cntmoji(str){
crlf=0;
len=str.length;
cnt=0;
while(1){
crlf=str.indexOf(unescape("%0D%0A"), crlf);
if(crlf<0) break;
cnt=cnt+2;
crlf=crlf+2;
}
len=len-cnt;
return len;
}
////////ページ数を数える//////////////////////////
function cntpage(gyou, yoko){
amari=gyou%yoko;
pagesu=(gyou-amari)/yoko;
mes=pagesu+"枚と"+amari+"行";
return mes;
}
////////行数を数える///////////////////////////////
function cntline(str, tate){
thisstr=""; //今調べ中の文字列
cursol=0; //カーソル(thisstrの先頭)
crlf=0; //改行、thisstrのcrlf文字目に発見
maxline=0; //最後に返すトータル行数
len=str.length; //文字列の長さ
while(cursol<len){
//cursolからtate文字取得
thisstr=bunsho.substr(cursol, tate);
//禁則処理
if(thisstr.charAt(0)==unescape("%0A")
|| thisstr.charAt(0)=="」"
|| thisstr.charAt(0)==")"
|| thisstr.charAt(0)=="』"
|| thisstr.charAt(0)=="。"
|| thisstr.charAt(0)=="、"
|| thisstr.charAt(0)==" "){
cursol++;
continue;
}
//tate+1文字目が改行ならそれは無視
if(thisstr.charAt(0)==unescape("%0D")){
if(cursol!=0
&& bunsho.charAt(cursol-1)!=unescape("%0A")){
cursol=cursol+2;
continue;
}
}
//改行があったら改行の次までカーソルを動かして
crlf=thisstr.indexOf(unescape("%0D"));
if(crlf>=0){
cursol=cursol+crlf+2;
}
//改行がなかったら最後までカーソルを動かして
else cursol=cursol+tate;
maxline++;
}
return maxline;
}
////////改行した文字列出力///////////////////////////
function outstr(str, tate){
thisstr=""; //今調べ中の文字列
cursol=0; //カーソル(thisstrの先頭)
crlf=0; //改行、thisstrのcrlf文字目に発見
len=str.length; //文字列の長さ
rtnstr=""; //原稿用紙サイズで折り返した文字列
br=0; //<BR>の位置
while(cursol<len){
//cursolからtate文字取得
thisstr=bunsho.substr(cursol, tate);
//禁則処理
if(thisstr.charAt(0)==unescape("%0A")
|| thisstr.charAt(0)=="」"
|| thisstr.charAt(0)==")"
|| thisstr.charAt(0)=="』"
|| thisstr.charAt(0)=="。"
|| thisstr.charAt(0)=="、"
|| thisstr.charAt(0)==" "){
cursol++;
br=rtnstr.lastIndexOf("<BR>", rtnstr.length);
if(br>=0){
rtnstr=rtnstr.substring(0, br);
rtnstr=rtnstr+thisstr.charAt(0)+"<BR>";
}
continue;
}
//tate+1文字目が改行ならそれは無視
if(thisstr.charAt(0)==unescape("%0D")){
if(cursol!=0
&& bunsho.charAt(cursol-1)!=unescape("%0A")){
cursol=cursol+2;
continue;
}
}
//改行があったら改行の次までカーソルを動かして
crlf=thisstr.indexOf(unescape("%0D"));
if(crlf>=0){
rtnstr= rtnstr
+str.substring(cursol, cursol+crlf+2)
+"<BR>";
cursol=cursol+crlf+2;
}
//改行がなかったら最後までカーソルを動かして
else{
rtnstr= rtnstr
+str.substring(cursol, cursol+tate)
+"<BR>";
cursol=cursol+tate;
}
}
rtnstr="<FONT FACE=\"MS ゴシック\">"+rtnstr+"<FONT>";
return rtnstr;
}
//-->
</SCRIPT>
|