# メールマガジンエディタを作る

ひまわりで、メールマガジン発行のための編集機能を備えたエディタを作ってみましょう！

【難易度】☆☆☆

## なぜ文章を整形するのか？

> 私のメールマガジン発行歴は、結構長いです。

> 思えば、インターネットを始めて、友達とメールのやり取りをするようになったのは、中国上海の留学時代です。海外生活というのは、とにかく驚きの連続です。生活習慣の違い、変な企画のＴＶ、毎日やってるドラマの主人公たちの行動の不条理さ、等々、友人に教えたいことが山ほどあったのです。

> それで、当時、友達の一人一人に、同じような内容のメールを送っていたので、上海通信なんてメールで壁新聞を作ろうかなぁと思っていると、まぐまぐなんていう、メールマガジン発行システムがあるじゃないですか！

> それで、上海通信なんてものを友達と発行したり、音楽の作り方講座や、みんなでゲームを作ろうとか、数多くのメールマガジンを発行してきました。かなり、自己満足系のメルマガが多かったなぁと思いつつも、読者からの反響に一喜一憂するのが楽しくて、今も、ＶＢ講座と、ひまわり通信の２誌を発行しています。

> それで、最近、メルマガを発行する上で、気にしているのは、『見易さ』です。

> ただでさえ、白地に、黒文字だけのテキストだけの簡素な画面・・・。あまり、だらだら長いと、見てもらえないのは当然として、文字の配置、罫線によるレイアウトなどなど、テキスト文字だけでも、工夫をすれば、案外、見やすくなるものです。

> そういうわけで、今回は、メルマガエディタを作ってみようという訳です。

## まずはエディタ

> では、とりあえず、プログラムの雛形と、エディタ部分を作りましょう。ひまわりなら、チョチョイノチョイであります。

> `’メルマガエディタの雛形 設定ファイル = 母艦のパス&"メルマガエディタ.ini" 一行文字数 = 72 母艦＝「メルマガエディタ」 その、幅＝800 その、高さ＝600 母艦を、中央へ移動。 『ファイル\新規 ファイル\開く ファイル\保存 設定\エディタ設定』を、メニューパス作成。 メインエディタを、Tエディタとして、作成。 その、サイズは、(0,0,800,600) 設定ファイルが、存在するか。 もし、それならば、（ メインエディタを、設定ファイルから、Tエディタ設定を読込。 ） ファイル_新規メニューの、イベントは、( 「エディタを初期化します」と、二択。 もし、それが、はいならば（メインエディタ＝「」） ) ファイル_開くメニューの、イベントは、( 「txt」の、読込ファイル選択。 もし、それが、「」でなければ（ それを、開く。メインエディタ＝それ。 ） ) ファイル_保存メニューの、イベントは、( 「txt」の、書込ファイル選択。 もし、それが、「」でなければ（ メインエディタを、それへ、保存。 「保存しました。」と、言う。 ） ) 設定_エディタ設定メニューの、イベントは、( メインエディタの、Tエディタ設定。 メインエディタを、設定ファイルへ、Tエディタ設定を保存。 )`

> 最近のバージョンアップでつけたメニューパス作成がかなり威力発揮してます。
> あと、Ｔエディタの、設定ファイルがあると便利だと思いますので、こちらに、おいておきます。

> 雛形が完成しましたので、これに、いろんな機能をつけていくことにします。
> いろんな機能を追加するには、メニューとそのイベントを追加すればばっちりです。
> 『メニューパス作成』命令は、メニューをどんどん追加してくれるので、上の雛形の一番下に、つけたい機能のメニューの名前と、そのイベントを追加していくだけです。

> `’追加した機能 『整形\行揃えする』を、メニューパス作成。 整形_行揃えするメニューの、イベントは、（ メインエディタを、一行文字数バイトで、行揃え。 メインエディタは、それ。 ） 『整形\センタリング』を、メニューパス作成。 整形_センタリングメニューの、イベントは、（ Ｓ＝（メインエディタの、選択文字列） もし、Ｓ＝「」ならば、（「センタリグしたい文字を選択」と、言う。戻る。） Ｓ＝トリム（Ｓ） Ｍ＝バイト数（Ｓ）。 (INT((一行文字数−Ｍ)÷２))回( Ｓ=" "&Ｓ) メインエディタの、選択文字列＝Ｓ＆「￥ｎ」 ） 『挿入\太線』を、メニューパス作成。 挿入_太線メニューの、イベントは、（ 字＝『━』。それは、「」 （一行文字数÷２）回（それ＝それ＆字） メインエディタの、選択文字列は、それ＆「￥ｎ」 ） 『挿入\細線』を、メニューパス作成。 挿入_細線メニューの、イベントは、（ 字＝『─』。それは、「」 （一行文字数÷２）回（それ＝それ＆字） メインエディタの、選択文字列は、それ＆「￥ｎ」 ）`

> 作っていて思ったんですけど、Ｔエディタの操作系の命令って、まだまだ痒いところに手が届かないですね。これは、まぁ、次回のバージョンアップの課題としておきますが、当面は、Ｔエディタへの整形処理は、出来るだけ、（Ｔエディタの、選択文字列）を介して行うと、うまくいくと思います。

> あと、ポイントをいくつか書くと、
> - 整形・挿入系の機能は、選択文字列を、うまく使うことで、簡単になる。
> - 日本語処理には、文字数とバイト数の違いを意識するを使うこと。
> - センタリングの計算は、（(センタリング幅 - 文字幅) ÷ 2）で求められる。
> と、こんなところです。

## まだまだ完成せず・・・

> 今回は完成しませんでした。また次回、メルマガエディタにユニークな機能を追加してみましょう！

> →作りかけ(m_edit.txt)

## まとめ

> 『自分の使う道具を、自分で作る。』

> これって、かっこよくないですか？！では、皆さんもぜひ、マイツールを制作してみてください！

戻る