弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

» 2011-06-25の日記

T女史の憂鬱…

仕事中、T女史が憂鬱そうな表情で私の机までやってきました。深いため息とともに語りだしたその内容は…「毎日提出しているテキストファイルの後ろに余計な改行が付いているみたいで、文章を書いている時にはそれに気が付かなくて、あとで余計な改行があるって知るんだけど…これって何とかならない?」とのこと。T女史のノートPCは以前OSの不調から熱暴走などを起こしたことからWindowsと決別し、「Ubuntu」を使ってもらっております。仕事で提出するテキストファイルは、「OpenOffice Writer」を使って書いてもらっているのですが、このアプリの仕様で自動的に文末に改行が入ってしまい、それを取ることはアプリ上ではできないようなんです。T女史のノートPCをWindowsのリカバリディスクがなかったため仕方がなかったとは言えいきなり「Ubuntu」にしてしまった私としては、全力でサポートする必要があります。これは何とかせねば…と立ち上がったのですが…。

T女史のノートPCに向かい、まずはOpenOffice Writerを立ち上げてみます。最初から改行マークがひとつ入っておりますが、そのマークは消すことができないんですよね。と言うことはこれは改行ではなく文末を示すマークだろうか? と思いつつ適当に文字列を打ち込み…頃合いを見て改行を入れてみます。入った改行のマークは最初から表示されていたマークと同じ(笑)。このファイルを名前を付けて保存でOpenOfficeの文書ファイルから単なるテキストに変更してみたのですが…それでも文末の改行マークは取れず。

おかしいと思い、そのテキストファイルをgeditで開いてみると…文末の改行がなかったことにされているではないですか。やはり先ほどの文末の改行マークはあくまで文末を示す単なる飾りであったのだな、と納得したのですが…。このファイルをWindows側から見ると「しっかり改行が残っているじゃないかっ!」という笑えない結果になりました(笑)。

実はこの問題は…Linuxを含むUNIX系のOSと、Windowsを含むDOS系のOSでは改行コードの取り扱い方が違うことに起因するのですけれども…ここでそれを言うのは詮無きこと。ならば、これはプログラムを書いて自動で改行を取り去ってしまうより他ないと判断しました。

作るとなればさっそく、プログラムの仕様を考え始めます。色々とやらねばならぬことが山積していて、進捗していない仕事もある中ではありますが、新しいアプリを開発するという作業は楽しいものです。

プログラムの性質上、サーバ上で動かす常駐タイプのものが良いですね。所定のフォルダを監視し、テキストファイルが入ったことを関知すると動作し、文末の改行を取り除き保存するものが良いです。実際に文末の改行を取り去る処理はどうしようか…と考えていると、自作モジュールの中にそれに適した命令文を作っておいたのを思い出しました(笑)。自作モジュール「kurage_mod」の中にある関数「K_FOOT_DEL()」です。

自分が過去に書いてすっかり忘れていた仕様書によると…
—————————————————————————————————————
K_FOOT_DEL()
文末にある対象文字列を削除

val = K_FOOT_DEL(p1,p2)

p1 : var 元の文字列を代入した変数
p2 : str 取り出したい文字列の前後にある言葉を入れた変数

解説
文末にある対象文字列を削除することができる関数です。
余分なスペースや改行コードなどにも対応しております。

サンプル
A = “ぬぬぬぬぬぬぬあいうえお\nかきくけこぬぬぬぬぬぬぬ”
T = K_FOOT_DEL(A,”ぬ”)
dialog T,0,”文末の「ぬ」を削除した文字列”

※結果
ぬぬぬぬぬぬぬあいうえお
かきくけこ関連項目

※反対に文頭にある対象文字列を削除したい場合は、K_HEAD_DEL関数をお使いください。
—————————————————————————————————————
2008年の3月31日に書いた仕様書なので、この命令文を作ったのはもう少し前のことと思います。普段、自作モジュールの命令文で最も使うのが置き換え処理だから、この文末の文字列削除命令は道理で忘れているわけですね(笑)。

この命令を使えば簡単に文末の改行削除ができるな…と思ったのですが、フォルダ監視の部分をゼロから書いていくのは面倒くさいです(笑)。そこで、すでにサーバー上で動いている画像監視用のプログラムの中にテキストファイルの処理を割り込ませる方法でいくことにしました。

開発の詳しい話はまたこの次にでも書いてみようと思います。


固定ページ

最近の投稿

カテゴリー





カレンダー

2011年6月
 12345
6789101112
13141516171819
20212223242526
27282930  

過去の日記はこちら

キーワードで検索