あるところで処理されたファイルから、必要な情報をpickupしてCSVにするスクリプトを作成。
いつものことながら、正規表現を確認するのにK2Editorの色替えを利用して作業にかかる。
r = text.gsub(/^( +)(%Z[0-9]+)(.*)\n(.*)/) {
pio = ($2 + $3 + $4)
pio = pio_check(pio)
pio_a[n] = pio.split(' ')
n = n + 1
}
という、なんでもない置換作業。で、これを外部ファイルとの入出力処理をくっつけて、あと、もろもろして。。。よしテスト。。。
あれれ、部分的におかしいなぁ。ある文字が行末にあると正規表現のとりだしが失敗している感じ。おかしいということで、テスト用ファイルを作成して実行してみると、全然問題なく、思った通りの処理。しかし、該当ファイルで実行するとちょっとおかしい。よし、中身を全部テスト用ファイルにコピーしてやってみよう。ということで、ctrl-a して ctrl-v でテスト用ファイルに貼り付ける。問題ない。再度該当ファイルでやってみるが、やはりダメ。
一体何が違うんだよう、ということで、K2Editor で diff するも「相違ありません」。いったいどうしちゃったのだ。正規表現をいろいろ変更するも症状は同じ。いったいどうすればよいのだ。とりあえずPCをリセットしてみよう。。。
そう、どうにかしちゃったのは私の方だ。なんのことはない、該当ファイルの文字コードがEUCだったという。あたしゃ、わざわざ、 -Ks して、念には念を入れて文字コードの間違いをしないようにしていたというのに、肝心の該当ファイルが違っていたのでは話にならん。。。
よし、そうとわかれば -Ke して実行すればよい。よし、出来た。基本はOKなので後は肉付だけだ。簡単なレイアウトも行いたいので、単純に print で出力しながら確認。。。コンソールに出力される文字は、
おかしいなぁ。
ruby -Ke test.rb text.txt > debug.csv
して degub.csv みれば問題ないのに。。。。とごちょごちょやっていて、ハタと気がついた。そうか、cmd 画面は s-jis で出力しなきゃだめなんだ、と。
K2Editor は文字コードを自動的に判別してくれるから、正常に表示される確率が非常に高く、よって、その辺に無頓着になっていたのだ。ステータスバーに文字コードが表示されているけど、目に入っていないのだ。
ということで、
require 'kconv' .. print csv.tosjis
して作業開始。お、出来た (^^) よし、Excel に読み込むぞ。
Excel も s-jis でなきゃダメなのであった。。。
最近はのみ薬を一日(5回)飲めばひどくならずに直ってくれます。週二回フットサル,土日サッカー..とかやると一気に発病です(^^;;;
薬が切れております。予備で持っていたのは既に使い切っていたという。病院に行くのも面倒だし(^^;)<br>せっかく口内炎が直りかけてきたというのに。。。