# テキストを飾ろう

前回のメールマガジンエディタを改良するアイデアです。文字装飾のアイデアを詰め込んでみました。

【難易度】☆☆

## 文字装飾のためのアイデア

> 前回、メールマガジンエディタの雛型を作りました。

> そこで、今回は、そのエディタと併用して使える、文字装飾専門のツールを作ってみましょう！

## 枠で囲う

> 文字装飾の基本でしょうか。まず、下線をつけてみます。

> `’下線を表示 下線＝『~』 「装飾したい文字は？」と、尋ねる。 もし、それが、「」ならば、おわり。 原文は、それ。 原文の、バイト数。M=それ。T="" M回( T = T & 下線 )。 結果は、原文　&　"\n"　&　T 結果を、表示。 結果を、コピー。' 結果をクリップボードにコピー ’サンプル ’下線表示 ’~~~~~~~~`

> ひまわりの命令に、文字数も、ありますが、日本語の全角文字は、ABC などの、アルファベットの２倍の幅を使いますので、文字数を使うと、下線が半分しか引かれないことになります。そこで、バイト数を使うと、ぴったり、原文と同じ幅を調べることができます。

> では、これを応用して、囲ってみます。

> `’四角で囲う 横線=「─」。縦線=「│」 左上=「┌」。右上=「┐」 左下=「└」。右下=「┘」 「装飾したい文字は？」と、尋ねる。 もし、それが、「」ならば、おわり。 原文は、それ。 原文の、バイト数。M=それ。 半端な文字 = (M % 2) もし、半端な文字 = 1 ならば( 原文 = 原文 & " " M = M + 1 ) LINE="" (M÷2)回( LINE= LINE & 横線 )。 結果は、「{左上}{LINE}{右上} {縦線}{原文}{縦線} {左下}{LINE}{右下}」 結果を、表示。 結果を、コピー。' 結果をクリップボードにコピー ’サンプル ’┌────┐ ’│枠で囲う│ ’└────┘`

> 先の例は、線自体が半角( 1 文字 1 幅 )だったので、計算が楽でしたが、今回は、囲い文字自体が、全角文字ですので、若干計算が面倒になります。

> まず、原文のバイト数を調べ、それを、２で割って何文字横線を繰り返せばよいのか調べるのですが、その際に、半端な文字数になってしまうことがあるので、この場合は、綺麗に枠に収まるように、空文字を入れて文字幅を揃える必要が出てきます。

> そこで、(文字幅　% 2)、つまり、文字幅を、2で割って、その余りを求め、その余りが１ならば、枠に綺麗にはまらないということになりますので、この場合に、空文字を足しています。

## 文字を区切り影のように見せる

> 次は、テキストを、1文字ずつ区切り、そこに影がついているように見せます。

> `’四角で囲う 「装飾したい文字は？」と、尋ねる。 もし、それが、「」ならば、おわり。 原文は、それ。 結果＝「」。影＝「」。 原文の、文字数。 それ回（ 原文の中で、回数から、1つ、切り出す。 C=それ。 Cの、バイト数。 もし、それ=1 ならば、C = C & " " 結果 = 結果 & C & "┃" 影 = 影 & "━┛" ）。 結果＝結果&"\n"&影 結果と、表示。 結果を、コピー。' 結果をクリップボードにコピー ' サンプル ' パ┃ン┃ダ┃は┃可┃愛┃い┃ ' ━┛━┛━┛━┛━┛━┛━┛`

> これは、ただ単に、原文の文字を、1文字切り出して、それを、結果に足していく方法をとってます。こちらも、半角文字だった場合を考慮して、半角だったら、空文字を足して、全角にする処理を入れてます。

## まとめ

> 文字列処理をする場合、全部半角だったら楽なのに！と、ぼやきたくもなりますが、全角文字には、罫線や★などの記号が用意されていたりして、アスキーアートの世界が堪能できるという楽しみがあります。

> 一文字ずつ、罫線を組み合わせて作るのは大変ですが、プログラムで流れを入力してやることにより、簡単に文字が飾れたら、メールを書いたり、メールマガジンを発行したりするときに、楽しみが増えると思います。

> ぜひ、面白い、テキスト装飾プログラムを作ってみてください！！

戻る