・ ・ ・ ・ ・ ・ ・ ・ ・ ・  前へ←→次へトップへ戻る
その5. 好きな文字数で改行する!もっと好きなカタチに!

 ※どうせだから、もっともっといろんなカタチに改行しちゃおうってことで、さらに追加。
 ※時間さえあれば、案外簡単に作れます。作ってみませんか?
          

結果のサンプル
1. テキストを入力します。
 ※改行せず入力してください。
 ※全角で入力してください。

2. 種類を選んで、
3. 改行を実行します。

ソース(スクリプト側) <HEAD>〜</HEAD>の中に入れましょう。
<SCRIPT>

function MakeArray(n){
 this.length=n;
}

function script2(factor_s,factor_t,factor_br){
 this.factor_s=factor_s;
 this.factor_t=factor_t;
 this.factor_br=factor_br;
}


function script3(script_value){
 this.value=script_value;
}

function br_wonder_111(form_br_3){
var text_src=form_br_3.text.value;

var sss = new MakeArray(9);
 sss[1] = new script3("
 	03030230300300101070190700100101090150900100100120
 	11121001300913100140071410016003161011600116001001
 	01330010010231002001023100200103290030010329003001
 	04270040010525005001052500500106230060010721007001
 	08190080010917009001101501000111130110011211012001
 	1309013001140701400115050150011603016001");
 sss[2] = new script3("
 	15050150011309013001111301100110150100010917009001
 	08190080010721007001072100700106230060010525005001
 	04270040010427004001042700400103290030010231002001
 	02310020010231002001023100200101330010010133001001
 	01330010010133001001013300100101330010010133001001
 	01330010010133001001013300100102310020010231002001
 	02310020010329003001032900300104270040010427004001
 	05250050010721007001081900800109170090011113011001
 	1407014001");
 sss[3] = new script3("
 	17010170011701017001160301600116030160011603016001
 	15050150011505015001150501500114070140011407014001
 	13090130011309013001130901300112110120011113011001
 	11130110011015010001091700900108190080010721007001
 	06230060010525005001042700400103290030010329003001
 	02310020010231002001013300100101330010010133001001
 	00351003510035100351003510035100351003510133001001
 	01330010010231002001023100200103290030010329003001
 	04270040010525005001062300600108190080011015010001
 	1211012001");
 sss[4] = new script3("
 	19010150011902014001190301300119040120011905011001
 	19060100011907009001190800800119090070011910006001
 	00300050010030005001003100400100320030010033002001
 	00340010010035100340010010033002001003200300100310
 	04001003000500119100060011909007001190800800119070
 	09001190601000119050110011904012001190301300119020
 	140011901015001");
 sss[5] = new script3("
 	10130120010423008001032600600102280050010230003001
 	02310020010231002001023200100102320010010232001001
 	02320010010209011131020301911117020061011505005101
 	12090041011110004101120900311112220010011222001001
 	13210010011320002001122000300112190040011218005001
 	11170070010521009001051901100105170130010418013001
 	04170140010417014001041601500104150160010413018001
 	0708020001");
 sss[6] = new script3("
 	25010090012405006001240700400123110010012212001001
 	21130010012013002001181500200116160030011318004001
 	08220050010228005001022700600102260070010224009001
 	02230100010223010001022301000102230100010124010001
 	01240100010124010001010800412010001131201000113120
 	10001131201000114110100011411010001141101000114110
 	10001141101000114110100011411010001141101000114050
 	16001");
 sss[7] = new script3("
 	15090110011509011001150901100115090110010801006090
 	11001000900609011001000900609011001001000215008001
 	01280060010130004001013100300101320020010132002001
 	02320010010232001001023310211010121020901410102090
 	14101030801509103080150910308015091030302009125101
 	12030081100100112220010011222001001112200200111220
 	02001112100300111200040011020005001101900600112150
 	080011609010001");
 sss[8] = new script3("
 	35001350010407024001041501600104200110010424007001
 	04270040010428003001042800300104280030010427004001
 	04270040011318004001130900306004001130900801004001
 	12100130011210013001121001300112100130011210013001
 	12100130011210013001121001300101220130010134001001
 	01340010010134001001013400100101340010010134001001
 	013400100103310010011519001001280600100135001");
 sss[9] = new script3("
 	35001200600900120110040012010005001201000500102060
 	12100050010212006100050010217001100050010228005001
 	02280050010230003001023310232001001023200100102320
 	01001151900100116180010011519001001151500202001001
 	14160050011416005001131700500112180050010920006001
 	03260060010326006001021800108006001021800108006001
 	02170020800600102160030800600101160040800600101150
 	05080060010113007080060010408009080060012108006001");

 var script1 = sss[form_br_3.script_num.value].value;

 var script_length=script1.length;
 var s=new MakeArray(script_length/5);
for(i=1;i<=script_length/5;i++){
i1=5*(i-1);
i2=5*(i-1)+2;
i3=5*(i-1)+2;
i4=5*(i-1)+4;
i5=5*(i-1)+4;
i6=5*(i-1)+5;
 s[i]=new script2(
 	script1.substring(i1,i2)*1,
 	script1.substring(i3,i4)*1,
 	script1.substring(i5,i6)*1);
} 

 var text_length=9;
 var text_num1=0;
 var text_num2;
 var text_stock="";


for(j=1;j<=script_length/5;j++){
	for(k=1;k<=s[j].factor_s;k++){text_stock=text_stock+" ";}
	text2=text_num1+s[j].factor_t;
	text_stock=text_stock+text_src.substring(text_num1,text2);
	text_num1=text_num1+s[j].factor_t;
	if(s[j].factor_br==1){
		text_stock=text_stock+"<BR>";}
}

var w_width="600px";
var w_height="600px";
var w_name="ttt";
detail="width="+w_width+",height="+w_height+",scrollbars=yes, menuber=no";
new_window=window.open("",w_name,detail);
new_window.focus();

	var newContent = "<HTML><HEAD><TITLE></TITLE>";
	newContent += "<LINK REL=STYLESHEET HREF=../style_1.css TYPE=text/css>";
	newContent += "<STYLE>";
	newContent += "BODY { margin: 10} PRE{font-size:10pt;}";
	newContent += "</STYLE>";
	newContent += "</HEAD><BODY bgcolor=white leftmargin=0 topmargin=0
				 marginwidth=0 marginheight=0>";
	newContent += "<TABLE cellpadding=1 cellspacing=0 bgcolor=#000000
				 width=102px><TR><TD>";
	newContent += "<TABLE cellpadding=5 cellspacing=0>
		<TR><TD bgcolor=#008bec width=100px>
		<SPAN style=color:#ffffff;>結果</SPAN>
		</TD></TR>
		<TR><TD bgcolor=#ffffff width=100px>";
	newContent += "<pre>"+text_stock+"</pre>";
	newContent += "</TD></TR></TABLE>";
	newContent += "</TD></TR></TABLE>";
	newContent += "</BODY></HTML>";
	new_window.document.write(newContent);
	new_window.document.close();
}


</SCRIPT>

 次のような処理をしています。
 (1)読み込んだ文字数をカウントする。
 (2)文字数を、指定した改行幅で割る。
 (3)割り切れる分だけ、テキストを文字幅で区切る。
 (4)余った文字を、最後に加える。
 (5)結果を出力する。

 ※スクリプトについては、別記しますが、
  本当は改行せず、だだーっと1行で記述してください。(02341301315……)
 ※05_04と比べ、複数のスクリプトを選択できるように、
 配列を作って制御しています。
ソース(呼び出し側)

<FORM NAME="form_br_3" >

<TABLE><TR>
<TD valign="top">
1. テキストを入力します。<BR>
 ※改行せず入力してください。<BR>
 ※全角で入力してください。<BR>
</TD><TD>
<TEXTAREA name="text" value="" rows="15" cols="50">ナカノワタリです。突然ですが…
</TEXTAREA><BR>
</TD></TR>

<TR><TD>
2. 種類を選んで、
</TD><TD valign="top">
<SELECT NAME="script_num">
<OPTION value="1" SELECTED>ハート型に改行しよう (550文字)
<OPTION value="2">たまご型に改行しよう (1039文字)
<OPTION value="3">しずく型に改行しよう (1056文字)
<OPTION value="4">やじるし型に改行しよう (495文字)
<OPTION value="5">「ア」型に改行しよう (752文字)
<OPTION value="6">「イ」型に改行しよう (551文字)
<OPTION value="7">「ウ」型に改行しよう (697文字)
<OPTION value="8">「エ」型に改行しよう (670文字)
<OPTION value="9">「オ」型に改行しよう (722文字)
</SELECT>

	<SCRIPT>
	function wopen_f(filename, windowname, www, hhh) {
	sWindowOption = 'width=' + www + ',height=' + hhh + ',
		toolbar=no,
		location=no,
		status=yes,
		menubar=no,
		resizable=yes,
		scrollbar=yes';
	top.window.open( filename, windowname, sWindowOption);
	}
	</SCRIPT>

<A href="javascript:wopen_f('05_05_sample.htm','sample','530','720')">
<IMG src="./sample_02.gif" border="0"></A><BR>
</TD></TR>

<TR><TD>
3. 改行を実行します。
</TD><TD>
<INPUT type="button" NAME="prompt" VALUE="改行ボタン(テスト)"
 onClick="br_wonder_111(this.form)"><BR>
</TD></TR>
</TABLE>
</FORM>
</FORM>
	

	

・・・・・・・・・・>もどる。