前回のメールマガジンエディタを改良するアイデアです。文字装飾のアイデアを詰め込んでみました。
【難易度】☆☆
前回、メールマガジンエディタの雛型を作りました。
そこで、今回は、そのエディタと併用して使える、文字装飾専門のツールを作ってみましょう!
文字装飾の基本でしょうか。まず、下線をつけてみます。
’下線を表示
下線=『~』
「装飾したい文字は?」と、尋ねる。
もし、それが、「」ならば、おわり。
原文は、それ。
原文の、バイト数。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文字切り出して、それを、結果に足していく方法をとってます。こちらも、半角文字だった場合を考慮して、半角だったら、空文字を足して、全角にする処理を入れてます。
’四角で囲う
「装飾したい文字は?」と、尋ねる。
もし、それが、「」ならば、おわり。
原文は、それ。
結果=「」。影=「」。
原文の、文字数。
それ回(
原文の中で、回数から、1つ、切り出す。
C=それ。
Cの、バイト数。
もし、それ=1 ならば、C = C & " "
結果 = 結果 & C & "┃"
影 = 影 & "━┛"
)。
結果=結果&"\n"&影
結果と、表示。
結果を、コピー。' 結果をクリップボードにコピー
' サンプル
' パ┃ン┃ダ┃は┃可┃愛┃い┃
' ━┛━┛━┛━┛━┛━┛━┛
文字列処理をする場合、全部半角だったら楽なのに!と、ぼやきたくもなりますが、全角文字には、罫線や★などの記号が用意されていたりして、アスキーアートの世界が堪能できるという楽しみがあります。
一文字ずつ、罫線を組み合わせて作るのは大変ですが、プログラムで流れを入力してやることにより、簡単に文字が飾れたら、メールを書いたり、メールマガジンを発行したりするときに、楽しみが増えると思います。
ぜひ、面白い、テキスト装飾プログラムを作ってみてください!!