« 2009年6月 | トップページ | 2009年8月 »

2009年7月

2009年7月23日 (木)

筆まめver.16再インストール後のMrnUtl70.dllトラブル

筆まめver.16再インストール後のMrnUtl70.dllトラブル

Time-stamp: "Sun Jul 19 07:16:35 JST 2009"

筆まめver.16をDドライブにインストールしていた。windowsが起動しなくなっ たので仕方なくCドライブをフォーマットして入れ直す。Dドライブはそのま まなのでD:\Program Filesディレクトリに筆まめがそのまま残っている。し かし、Cドライブのフォーマットによりレジストリが消滅しているのでスター トメニューに筆まめはない。

そこでDドライブの同じディレクトリに再インストールすることにする。レ ジストリが消えているので修復にはならず新規インストールとなる。最後に 何かメッセージが出る。何か不味いことがあるらしい。早速にデスクトップ に出来た筆まめのアイコンから筆まめを起動してみる。

「MrnUtl70.dllが見つからないので起動できない」というメッセージが出る。 そして「再インストールで解消する場合がある」とも言う。そこで直ぐに修 復インストールをする。しかし同じメッセージで起動しない。

ネット検索する。「MrnUtl70.dll」と「筆まめ16」をキーワードにする。 MrnUtl70.dllをwindows\system32ディレクトリにコピーすればよいらしい。 そこでパソコン内にMrnUtl70.dllがあるのかと検索するが見つからない。筆 まめ16のインストールDVDの中を探すと存在する。早速キャブファイルから 抽出してwindows\system32のコピーする。それでも「MrnUtl70.dllが見つか らない」メッセージで筆まめ16は起動しない。

筆まめの実行ファイルのあるD:\Program Files\Creapp\Mamew16\ディレクト リにMrnUtl70.dllをコピーしても変わらない。MrnUtl70.dllは筆まめのファ イルであり、ネット検索によればこれによるトラブルは結構多いらしい。検 索した限りでは決定打はない。Windowsの再インストールで治ったという報 告が一件あった。これは最後の手段としたい。

筆まめ16自体は起動できないがコントロールパネルのアプリーションの追加 と削除には筆まめ16がある。そこで筆まめ16をアンインストールする。アン インストール自体は正常に終る。デスクトップの筆まめのアイコンはなくな る。D:\Program Files\Creapp\Mamew16\配下のディレクトリは残っているが フォルダ内にファイルはない。これはそのままにする。

もう一度D:\Program Files\Creapp\Mamew16\に筆まめ16を新規インストール する。これでようやく筆まめ16が起動できるようになる。

筆まめはクレオの製品だからと株式会社クレオのサイトに行くと筆まめ関連 の情報がない。筆まめ情報はfudemame.netに行かなければならない。筆まめ 16アップデートプログラムをクレオのサイトで探しても見つからない。

筆まめ関連情報は専用サイトにある。

バージョン別のアップデートプログラムがある。

なお、fudemame.netの存在に気付いたのは筆まめ16が正常に起動するように なってからのバージョン情報を見たときである。筆まめが機嫌よく動いてい るときにはバージョン情報を見ることがない。そしてセットアップ情報削除 ツールなるものがあることが分かる。私の場合はこれを使わないでも動くよ うになった。

筆まめVer.16セットアップ情報削除ツール

本プログラムは、一部のパソコン環境で、筆まめVer.16のアンインストール 後に不要な情報が一部残り再インストールできなくなった場合に、一旦その 不要な情報を消去する為のプログラムです。

結局はD:\Program Files\Creapp\Mamew16\以下のディレクトリをバッサリと 削除して新規インストールしたほうがよかったのかもしれない。しかし、そ れでも一旦再インストールしたのちにアプリケーションの追加と削除からア ンインストールしてもう一度新規インストールする必要があったかもしれな い。その昔にアンインストーラで削除するほうがディレクトリを直接に削除 するよりはよいと聞いたことがある。

どうにも行き詰まった場合には色々と試してみるしかない。万策尽きた最後 はwindowsの再インストールになる。windowsの修復セットアップならレジス トリが残るけれどCドライブをフォーマットしてのwindows再インストールは 面倒である。これをやると機嫌よく動いている他のアプリケーションを復活 させるのが大変である。windowsが起動しなくなった場合以外は避けたい。

いちばんの心配はちゃんとwindowsが戻ってくれるかどうかにある。少々つ まづいてもwindowsさえ起動するようになれば何とかなる。windowsが起動し なければパソコンは只の箱になってしまう。

| | コメント (1) | トラックバック (0)

2009年7月20日 (月)

テキスト処理ツール

sed

Time-stamp: "Mon Jul 20 09:18:36 JST 2009"

sed118.zip付属のreadme.1stに次の記述がある。

「GNU sed version 1.18 + multi-byte extension 1.03 / Win32 Version

これは GNU sed version 1.18 のソース(sed-1.18.tar)に、谷本孝浩 (NBC02362 @niftyserve.or.jp)氏作のマルチバイト文字対応パッチ (mb-1.03.diff)をあて、さらに文字コードを EUC から Shift-JIS に変更し、 Visual C++ 2.0 でコンパイルしたものです。

Win32 に伴う特別な変更はしていません。したがって、UNICODE には対応し ておらず、基本的に Shift-JIS のみの対応となります」

awk

gawk2154.zip付属のreadme.1stに次の記述がある。

「Gnu Awk (gawk) 2.15, patchlevel 4 + multi-byte extension 1.03 / Win32 Version

これは GNU awk (gawk) version 2.15.4 のソース(gawk-2.15.4.tar)に、谷 本孝浩(NBC02362@niftyserve.or.jp)氏作のマルチバイト文字対応パッチ (mb-1.03.diff)をあて、さらに文字コードを EUC から Shift-JIS に変更 し、Win32 用の若干のパッチをあてた上で、Visual C++ 2.0 でコンパイル したものです。

Win32 に伴う特別な変更はしていません。したがって、UNICODE には対応し ておらず、基本的に Shift-JIS のみの対応となります」

perl

perlによるテキスト処理は一行ずつ読み込んで何かの処理をしてからその行 を出力する。読み込んだ行に何も手を加えないでそのまま出力する次のスク リプトが基本になる。処理すべき行を正規表現検索で見つけたら希望の処理 をする。処理する必要のない行はそのまま出力する。

while(<>){
chomp;
print $_,"\n";
}

どのバージョンのperlを使うかは悩ましい。自分の場合はperl 入門書の例 題にあるようなごく簡単な処理しかしてない。とにかくスクリプトを動かし てみて不都合が起きたらそのときに考え直せばよいとする。日本語を理解し ないperl を使って日本語の入った正規表現検索で失敗したりもする。長大 なテキストファイルの処理でも、たった一箇所の失敗で済むこともある。結 果がグチャグチャになることは、多分無い。

perlエキスパートの作った高性能スクリプトならperlのバージョンを問うか もしれない。最新版か動作確認済みの推奨バージョンにしたほうがよい。拙 作スクリプトの如き入門レベルのヘナチョコなスクリプトを動かすには最新 版は必要ない。むしろ少し古めのこなれたバージョンのほうがよいかもしれ ない。

私は全文検索システムのnamazuを動かしているため、使っているバージョン のnamazuと相性のよい現在使用中のperlをバージョンアップすることができ ない。最新版のperlは現在使用中のwindows meでの動作を保証してないこと もある。サポートされなくなったとは言ってもマイクロソフトの蓄積情報に はアクセスできる。

オペレーティングシステムのwindowsにしろアプリケーションソフトウェア にしろ明らかな致命的不都合のない限りはバージョンアップしないほうがよ い。

あるときシフトjisのテキストファイルの中で開き角括弧「[」を検索したと き、漢字の「夕」にヒットしてしまう。漢字の「夕」のシフトjisコードは 「975b」であり、開き角括弧「[」の文字コードは「5b」であったために予 期せぬ結果となる。

処理前ファイルと処理後ファイルをdiffコマンドで比較してみて気付く。結 構サイズの大きいファイルであったので二つを並べても気付かなかったと思 う。こういうときには二つの差異だけを表示してくれるdiffコマンドの威力 を感じる。

diffとpatch

diff (differential file comparator)

diff [options] file1 file2
diff [options] dir1 dir2

指定した二つのファイル、または二つのディレクトリにあるファイル同士を 比較し、相違点を出力し同一にするための情報を出力する。

オプションで出力形式を指定する。何も指定しなければ行頭に大なり記号と 小なり記号で二つのファイルの各行を表わす。コンテキスト形式にすると違 いが分かりやすくなる。ユニファイド形式は一番くどい表し方で人間には分 かりやすいが結果表示が長くなる。

-c (--context)
-u (--unified)

近畿大学角藤氏のpatch-diff-w32.zipは次にある。

less

使い方は「less --help」で表示される。「/pattern」または「?pettern」 で検索ができる。まずはlessを使わないでコマンドプロンプトに処理結果を 表示する。エラーもなく長大な結果が流れ去ってゆくことが分かったらless を使って再点検する。

福井隆司氏による日本語化パッチの適用及び拡張を施されたlessのバイナリ less-358-iso249-win32-ix86.tar.gzは次にある。

winmerge

ウィンマージは似通った二つのテキストファイルの違いを表示する。そして それらを編集することができる。diffコマンドは二つのテキストファイルの 異なる行とその前後数行を表示してくれる。winmergeは画面を左右に分割し て、それぞれに似通った二つのテキストファイルを並べてその違いを色分け 表示する。

テキスト処理に漏れがないかを確認するには便利である。diffコマンドは違 いだけを抜き出す。winmergeは全体を表示して二つの間の違いを明示する。 最終確認にはwinmergeを使うのがよい。

windowsから使うunixライクツール

  • GNU utilities for Win32
    http://unxutils.sourceforge.net/
    ``Here are some ports of common GNU utilities to native Win32. In this context, native means the executables do only depend on the Microsoft C-runtime (msvcrt.dll) and not an emulation layer like that provided by Cygwin tools.''
  • Cygwin Information and Installation
    http://cygwin.com/

    ``Cygwin is a Linux-like environment for Windows. It consists of two parts:

    1. A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
    2. A collection of tools which provide Linux look and feel.

    The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE.

    Note that the official support for Windows 95, Windows 98, and Windows Me will be discontinued with the next major version (1.7.0) of Cygwin.''

| | コメント (0) | トラックバック (0)

2009年7月16日 (木)

ココログにアップロードしたテキストファイルの文字化け

ココログを作る道具

ココログを投稿する道具(ソフトウェア)としては、いわゆるホームページを 閲覧するソフトウェアであるブラウザさえあればよい。自分のパソコンの中 へココログを開設するための道具を設置する必要はない。

ウェブログ(さらに略してブログ)と、それ以前の従来型ホームページの作り 方は大きく違う。その違いは、ブログとか従来型ホームページを作るソフト ウェアがローカル(自分のパソコン内)にあるか、それともリモート(ホーム ページのサーバー、たいていはインターネット接続サービスプロバイダー) 側にあるかにある。

ホームページやブログを閲覧する人はサーバーにあるhtmlファイルをブラウ ザを通して見る。これは昔から今まで変わらない。変わったのはhtmlファイ ルの作り方である。

その昔は、自分のパソコンの中でホームページ用のhtmlファイルを作る。作 成ソフトウェアはテキストエディタやホームページ作成ソフトになる。何を 使うにしても作成ソフトは自分で用意する。それを使った成果であるhtmlファ イルをホームページのサーバーへアップロードする。

ブログでは、ブログ作成ソフトウェアをブログのサーバーが用意する。その ソフトウェアを操作する窓口となるのがブラウザである。ブラウザからココ ログのサイトにログインしたら投稿画面を選ぶ。現われた入力画面に打ち込 んでいけば記事が出来上がる。投稿画面はココログのサーバーに設置してあ る投稿受け付けソフトがブラウザに表示している。

ココログの記事を作るための仕掛けの一切合切がココログのサーバー側にあ る。ココログを開設する際に、ココログに投稿するためのソフトウェアを自 分のパソコンにインストールすることは求められない。

ハイパーテキスト・マークアップ・ランゲージ(html)とは

htmlとはハイパーテキスト・マークアップ・ランゲージ(hypertext markup language) の頭字語(とうじご、acronym、アクロニム)である。普通の英和 辞書によるとmarkupは値上げ(額)とある。手元の英和辞書にhypertextはな いが接頭辞のhyper-には超えるという意味がある。textは原文とか本文、そ してlanguageは言語である。

ハイパーはハイパーリンク(hyperlink、飛び越えるつながり?)を意味する。 他とは違う文字色で、たいていは下線(アンダーライン)の引いてある箇所に マウスポインタを置いてクリックするとリンク先に飛んでいけるアレである。

マークアップとは地(ぢ)の文章の中にタグ(tug、荷札)と呼ばれる文章の見 栄えや書式とか構造に関する命令を書き込むことをいう。

もとの文章に、その表示装置となるブラウザへの指示を書き込む。ブラウザ は指示を解釈して文字だけを表示する。

最後のランゲージはプログラミング言語のことである。ホームページを作る ということはhtmlというプログラミング言語に従うプログラムを作ることに なる。

htmlにしないでテキストファイルのままアップロードする

私は、htmlファイルを作るにはテキストエディタを使う。まず書きたいこと をエディタに入力する。最初は拡張子が「.txt」のテキストファイルを作る。 次にhtmlのタグを入れて拡張子を「.html」にして保存する。

出来上がったhtmlファイルをブラウザに読み込んで見栄えを確認する。問題 なければサーバーへアップロードする。

出来上がったhtmlファイルに書き加えるとか訂正するときに、地(ぢ)の文章 に付け加えられたタグが邪魔して読みにくい。

何時になったら完成するか分からないような次々に書き加えることが予想さ れるものに早々とタグを入れてしまうと編集しにくい。

完成するまで待っていたら結局アップロードすることなくパソコンの肥やし として埋もれてしまう気がする。せっかく閃いたアイデアとか調べた結果が 無駄になる。そこで下書き状態の途中経過であってもアップロードしようと 考える。何か調べ物をした結果などを公開するに気後れすることはない。

グーグル検索でヒットする記事のほとんどは、いわゆるホームページの体裁 をなした綺麗なページである。そういった中で極々まれにシンプルなプレイ ンテキストファイルに行き当ることがある。windowsのメモ帳で書いたスタ イルそのままのページである。

グーグルなどのインターネット上の検索エンジンは、いわゆるホームページ の形式をしたページに索引を付けるだけではない。インターネット上に公開 されているあらゆるファイルに含まれる文章に索引付けする。ワードプロ セッサーで作ったファイルやpdfにしたものも検索結果に現われる。

そのゆえテキストファイルのままで、未だhtmlのタグ付けしてないファイル であってもグーグル検索にはヒットする。下書きのテキストファイルであっ てもインターネット上に公開すれば必要な誰かの目に触れる可能性が出る。 少くとも自分のパソコンに死蔵するよりは世の中の役にたつ。

ココログへファイルをアップロードする方法

ココログ管理ページにあるコントロールパネルからファイルタブを開くとコ コログサイトにアップロードしたファイルを表示するファイルマネージャー になる。ココログを始めた当初はアップロードファイルが僅かだからファイ ルマネージャー画面はいたってシンプルなものであろう。

約30本の記事をアップロードしてからココログのファイルマネージャーを見 る。今迄は必要がなかったので覗いていない。アー、ナルホドこういう構造 になっているのか。ある程度多くのファイルがないと様子が分かりにくいな と思う。

この仕組みさえ分かればブラウザ経由で非htmlファイルをココログサイトに アップロードできる。

コントロールパネルというと、windowsの画面左下のスタートボタンを押し て表示されるメニューの先にあるコントロールパネルを思い浮かべてしまう。 そうではなくてココログ作成サイトにログインしたら表示されるココログ管 理ページのコントールパネルである。

ファイルタブを開くと、今までにココログサイトにアップロードした記事ファ イルと添付ファイルが「年」ディレクトリ、そしてその配下の「月」ディレ クトリ毎にというふうに収納されている様子が分かる。

同じファイルマネージャーという言葉を使っていてもローカルな(自分のパ ソコン内にあるもの)とリモート(ココログサイト側)にあるものは違う。ちょっ と紛らわしい。

ココログにアップロードしたテキストファイルの文字化け

html化する以前の下書きテキストファイルをココログにアップロードする。 アップロード先へのリンクを貼るためのココログページを作る。

アップロードしたらテキストファイルへのリンクを書き込んだココログの ページを表示する。リンクをクリックしてブラウザにテキストファイルを表示 する。残念ながら日本語が文字化けする。ブラウザのエンコードをshift_jis に変更すると正常に表示する。

通常はブラウザとしてoperaを使っているがnetscapeの後継であるfire fox やwindows付属のinernet explorerでも事情は同じようである。これでは不 便である。

どうしてなのかと首をかしげていたとき次を思い出す。

「任意の HTML ファイルをファイルマネージャでアップロードして表示させ たい場合には、ファイルの文字エンコードを UTF-8 にする必要があります。」

試しにアップロードするテキストファイルの文字コードをshift_jisから utf-8に変更して差し替える。そうしたらココログのページからリンクしても 文字化けしない(ブラウザはキャッシュ(以前に読み込んだもの)があれば、そ れを表示するので再読み込みボタンを押す)。

ブラウザとは、htmlファイルを表示するためのソフトウェアである。さらに それはテキストファイルを表示することができる。その際は日本語の文字コー ドを自動的に判定して正常に表示する仕掛けを備えている。文字化けするテ キストファイルがあったらブラウザに読み込んでみるとよいといわれるくら いである。

しかし実際には文字化けする。リンク元と同じサイト内にあるテキストファ イルの文字コードは、ジャンプする以前のページの文字コードと同じだろう と解釈して文字コード判別をさぼっているような気がする。

まったく違う場所から飛んでゆくときのジャンプ先の文字コードは不明だか ら判別しようとする。同一サイト内で文字コードを混在させていることはな いはずとしているのではなかろうか。

| | コメント (0) | トラックバック (0)

2009年7月 1日 (水)

vimで自動折り返しができた(skk.vim+format.vim)

vimに再挑戦する

Time-stamp: "Tue Jun 05 14:51:14 JST 2012"

普段使うテキストエディタはmeadowである。これからも主力はmeadowと思 う。unixな世界のエディタにはmeadowより古いviがある。こちらも使いこな せるようにしたい。 前回vimにチャレンジしたときは仮名漢字変換skkの状態表示の[SKK:aA]や [SKK:あ]が表示されなくて困った。この表示がないと極めて使いにくい。こ のときはset rulerを_vimrcに書くことで解決する。

今回の目標は文字コードがutf-8であるファイルを編集できるようにするこ とである。前回のチャレンジで、本家版のままでshift_jisのファイルは問 題なく編集できることが分かっている。本家からリンクのある sourceforge.net の文字コード変換用dllを入れれば他の文字コードも扱え るという。 そこで本家から最新版をダウンロードして英文案内にある二つのdllを入れ る。

iconv library

A library used for converting character sets. Put "iconv.dll" in the same directory as gvim.exe to be able to edit files in many encodings. You can find the dll file in the bin directory of the "libiconv-win32" archive.

newer intl library

The included libintl.dll does not support encoding conversion. If you have installed the iconv library, as mentioned above, you can install a gettext library that uses it. Get "intl.dll" from the bin directory in the gettext-win32 archive and store it as "libintl.dll" in the same directory as gvim.exe, overwriting the file that may already be there.

これらは次からダウンロードする。

http://sourceforge.net/projects/gettext

作業後にshift_jisではないテキストファイルを読み込んでみると文字化け する。再読み込みで正しい文字コードを指定すると文字化けは直る。ネット 検索で文字コード判定ルーチンを_vimrcに書き込んでやらなければならない と知る。長たらしい設定を丸写しする。

文字コードの自動認識の設定がある。それを_vimrcにコピーする。ついでに次も使う
デフォルトのステータスラインに文字コードと改行文字を表示する。
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
(注)「set ruler」が必要である。

これで便利になるのだがskkを起動したとき[SKK:aA]や[SKK:あ]が表示され ない。statuslineを定義しないでset rulerだけならちゃんと表示される。 そこでstatuslineに[SKK:aA]や[SKK:あ]を表示させる方法をネット検索す る。そこで次を見つける。

「おまけとして、'statusline'を自分で変更している場合に'statusline'に SKKのモードを表示させる方法を書いておく。」

shift_jisではないファイルを扱うようになったのでファイルの文字コード をステイタスラインに表示するようにしたい。またもやネット検索でステイ タスラインの設定を探す。独自ステイタスラインにするとskkのインジケー ターである[SKK:aA]や[SKK:あ]が表示されなくなる。

前記はskkを使わない人の設定だったようで、再び検索してステイタスライ ンにskkの状態を表示する設定(後記)が見つかる。

vimで自動折り返しができた(skk.vim+format.vim)

これで快適になり忘れかけたキー操作を思い出しながら使う。あるとき ステイタスラインの[SKK:aA]や[SKK:あ]の隣に「FILL」とあることに気付く。 meadowでいうとことろの自動詰め込みのように見える。実際画面の右端にく るとエンターキーを打たないでもカーソルが左端に自動的に飛ぶ。 これは便利になった。しかしどうしてそうなったのかが分からない。何かの 弾みでキー操作を誤って偶然にそうなったと思う。そこで適当なキー操作を 手当たり次第に試してみる。そうすると「ctrl+k」で「FILL」がトグル(点 いたり消えたり)することが分かる。

ところで指定された一行文字数になるよう右端(行末)に自動的に改行を入れ てくれる機能をemacs(そしてmeadow)では自動詰め込みという。同じことを viな世界では自動折り返しと呼ぶらしい。「折り返し」をキーワードにして 検索しないと見つからない。 ひとまず自動折り返しを実現しているのはformat.vimと思い、その中にFILL という文字があるかもしれないと検索するが見つからない。次に「ctrl+k」 というキーの組合せを探す。やはり手掛りがない。そこでskk.vimのほうを 探す。「C-k」でskk_autofill_toggle_keyという変数が見つかる。

ようやく真犯人の尻尾を掴む。すぐに「vi」と「自動折り返し」で検索を掛 けたら次の記事にぶつかる。 auto fillがskk.vimで実現されている。ただし、format.vimがロードされて ないと自動で折り返さないという。

762 :名無しさん@お腹いっぱい。:2006/03/14(火) 10:56:49
skk.vim
お久し振りです。
>>710 への一つの解として Auto Fill モードを付けてみました。
format.vim がロードされてないと自動で折り返しはしません。
デフォルトではトグルキーを<C-k>にマップしてあります。
http://aploda.org/dl.php?mode=pass&file_id=0000000092
763 :KoRoN@Vim%Chalice ◆8XALICEsdk :2006/03/14(火) 11:50:40
>>762 おつかれさまです。コピー置いておきます。
http://www.kaoriya.net/testdir/skkvim-20060314.zip (リンク切れ)
764 :710:2006/03/15(水) 06:55:59
>>762 素晴らしいです.実用には十分です.
現在も100% skk.vimを常用しているので引き続きテストします.
本当にありがとうございます.

上記のskkvim-20060314.zipはskk.vimのver0.18のようです。vimの本家サイ トにはver0.22が置いてある。

自動折り返しが動くかどうかの問題は一緒に使うformat.vimのバージョンの 相性にあるようです。kaoriya版のvim7.2に含まれるver1.7rc2では上手くな い。ver1.7alpha-2かver1.6.1では希望通りに動く。

skk.vimの内容はよく分からないが自動折り返しのほとんどの作業をskk.vim 自体でやっているらしい。format.vimに幾分かは頼っているのかなくらいに 感じる。 skk.vimとformat.vimの両方を使っているのでなければ日本語入力での skk.vimによる自動折り返しは機能しない。vimの仮名漢字変換としてskkを 使う極々少数派(?)しか使えない。

skkはもともとemacs(そしてmeadow)のかな漢字変換として開発されている。 これをviで使う人は少ないのかもしれない。そのためskk.vimに装備された 自動折り返しというチョー便利な機能を紹介する人がいない。 二日間くらいネット検索に明け暮れしてようやく上記の2チャンネル情報に 到達できた。vimのskkによる自動折り返し機能について発信する人がいない のはどうしてだろう。

| | コメント (0) | トラックバック (0)

« 2009年6月 | トップページ | 2009年8月 »