テキストを飾ろう

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

【難易度】☆☆


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

 前回、メールマガジンエディタの雛型を作りました。
 そこで、今回は、そのエディタと併用して使える、文字装飾専門のツールを作ってみましょう!

枠で囲う

 文字装飾の基本でしょうか。まず、下線をつけてみます。
’下線を表示
下線=『~』
「装飾したい文字は?」と、尋ねる。
もし、それが、「」ならば、おわり。
原文は、それ。

原文の、バイト数。M=それ。T=""
M回( T = T & 下線 )。
結果は、原文 & "\n" & T

結果を、表示。
結果を、コピー。' 結果をクリップボードにコピー

’サンプル
’下線表示
’~~~~~~~~
 ひまわりの命令に、文字数も、ありますが、日本語の全角文字は、ABC などの、アルファベットの2倍の幅を使いますので、文字数を使うと、下線が半分しか引かれないことになります。そこで、バイト数を使うと、ぴったり、原文と同じ幅を調べることができます。
 では、これを応用して、囲ってみます。
’四角で囲う
横線=「─」。縦線=「│」
左上=「┌」。右上=「┐」
左下=「└」。右下=「┘」

「装飾したい文字は?」と、尋ねる。
もし、それが、「」ならば、おわり。
原文は、それ。

原文の、バイト数。M=それ。
半端な文字 = (M % 2)
もし、半端な文字 = 1 ならば(
  原文 = 原文 & " "
  M = M + 1
)
LINE=""
(M÷2)回( LINE= LINE & 横線 )。

結果は、「{左上}{LINE}{右上}
{縦線}{原文}{縦線}
{左下}{LINE}{右下}」

結果を、表示。
結果を、コピー。' 結果をクリップボードにコピー

’サンプル
’┌────┐
’│枠で囲う│
’└────┘

 先の例は、線自体が半角( 1 文字 1 幅 )だったので、計算が楽でしたが、今回は、囲い文字自体が、全角文字ですので、若干計算が面倒になります。
 まず、原文のバイト数を調べ、それを、2で割って何文字横線を繰り返せばよいのか調べるのですが、その際に、半端な文字数になってしまうことがあるので、この場合は、綺麗に枠に収まるように、空文字を入れて文字幅を揃える必要が出てきます。
 そこで、(文字幅 % 2)、つまり、文字幅を、2で割って、その余りを求め、その余りが1ならば、枠に綺麗にはまらないということになりますので、この場合に、空文字を足しています。

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

 次は、テキストを、1文字ずつ区切り、そこに影がついているように見せます。
’四角で囲う
「装飾したい文字は?」と、尋ねる。
もし、それが、「」ならば、おわり。
原文は、それ。

結果=「」。影=「」。
原文の、文字数。
それ回(
  原文の中で、回数から、1つ、切り出す。
  C=それ。
  Cの、バイト数。
  もし、それ=1 ならば、C = C & " "
  結果 = 結果 & C & "┃"
  影 = 影 & "━┛"
)。
結果=結果&"\n"&影

結果と、表示。
結果を、コピー。' 結果をクリップボードにコピー

' サンプル
' パ┃ン┃ダ┃は┃可┃愛┃い┃
' ━┛━┛━┛━┛━┛━┛━┛
 これは、ただ単に、原文の文字を、1文字切り出して、それを、結果に足していく方法をとってます。こちらも、半角文字だった場合を考慮して、半角だったら、空文字を足して、全角にする処理を入れてます。

まとめ

 文字列処理をする場合、全部半角だったら楽なのに!と、ぼやきたくもなりますが、全角文字には、罫線や★などの記号が用意されていたりして、アスキーアートの世界が堪能できるという楽しみがあります。
 一文字ずつ、罫線を組み合わせて作るのは大変ですが、プログラムで流れを入力してやることにより、簡単に文字が飾れたら、メールを書いたり、メールマガジンを発行したりするときに、楽しみが増えると思います。
 ぜひ、面白い、テキスト装飾プログラムを作ってみてください!!

戻る