さて、前回 書いた様に、フラットテキストを HTML の テーブル記述 に変換するものです。
VB.net を使って書きましたが、
内容的には、一般的な HTML 用では無く、Blogger の投稿用に表を組み込む為のツールになります。
ですから、考え方のみ、以下に纏めます。
作文して行く上で、メモ帳 notepad.exe を使い、タブ文字(以下 Tab) で簡易表的に草稿を書いている、 と、
前回 に ご説明しました。
これをそのまま投稿にすると、半角文字によって、簡易表の位置ずれが起こります。
それを避ける為の HTML Table なのですが、
行や列が増えて来ると、その作業は、... 、地獄です。
この地獄から抜け出し、ぱぱっ!、とHTML のコードに変換したい! が事の始まりです。
表形式ソフトのデータから HTML へ、は検索すると事例が見付かりますが、
単なる文字列の集合の フラットテキスト からは、難儀です。
Tab や Space の混在したデータから 列の冒頭を判断し、
時には、空データで、後半が省略されたものを処理しなければいけません。
冒頭行の見出しですら、項目間に Space が来るし、空白は Space や Tab が複数混ざります。
詰まる所、
項目の半角文字数を指定してあげれば、それに基いて、行を分割して行くのですが ... 。
こんな簡易表形式を見た事がありませんか?。 半角混じりの為、位置ずれあり。 後述の図を参照。.
項目1 項目2
---------- ----------------------
内容 説明
そうです。
この形にすれば、判別が可能ですね。
項目間は ひとつの Space で隔たっている あれ です。
各見出しは ----- でガイドされます。
何も、最初から、----- を書き込む必要は無く、
プログラムに Copy&Paste で渡した後に、新行を挿入してやれば良いですね。
草稿時に Tab Space 交じりであったものは、
Space に統一しましょう。
草稿時の見た目を再現する為と、後々の文字列後半のトリム Trim() の為、です。
メモ帳 notepad.exe の Tab 標準は 最大8文字 ですが、
他のエディタ類からの投入も考慮し、可変 にして置きます。
さて、準備は整いました。
後は、コードを書いて行くだけ。
Tab を 所定の Space に置換し、
----- から 各列の文字数を取得し、
それから、各項目名を取得し、
同様に、各データを吸い上げる
こうした流れになります。
VB.net 的には、文字列変換 の山です。
string.Replace と string.Substring の活躍ですね。
そう、TextBox から、1行を抜き出す TextBox.Lines(n) も大忙しです。
データは各行後半に空データで短いものもあるので、
其処は注意しないとエラーで止まってしまいます。
差し当たり、 動くものになりましたので、 その画面を。 Form1.vb 約 360 行。.
いやぁ、書くのは大変ですが、
一旦、出来て仕舞えば、 入力やボタンを幾つか押すだけで、簡単に HTML コードが出て来ますので、
楽ちん! です。
手入力では、ミス連発になるであろうデータボリュームでも、
出て来たものを Blog の投稿に流し込み、プレビュー画面で確認が取れるので、
チェック作業も捗りますね。
これで、少しは、我が投稿も見易くなるのでしょうか?。 :o
追記:
このプログラムを使って自動生成した HTML Table は以下に載せてあります。
尤も、 Blogger に CSS 設定してありますので、 それとの混合の結果 になりますが。
興味がおありでしたら、覗いて見て下さい。
GIMP Layer Mode Enum Names
0 件のコメント:
コメントを投稿