fc2ブログ
InDesign居残り補習室

どれだけ勉強しても上達しない管理人の、InDesign備忘録を中心に。たまにブックレビューなども。

作業メモ:テキスト処理1  2006/05/12

別にシリーズ化するつもりはないが、おそらく何回かはこのテーマで書くだろうから。
あるいは、モチベーション維持のために書く意志を奮い立たせているだけ……という見方もできるが(^^:

今回は数値のみのCSVファイルタブ区切りテキストを編集。
各フィールドはクォートされていない。
正の整数のみで、桁区切りのカンマはデータに含まれている。

上記の条件で、各フィールドの数値を全角( )で囲む必要が生じた。
まずはCSVタブ区切りテキストの内容を抜粋。

¥t¥t4¥t1¥t¥t6¥t¥t1¥t2¥t4¥t3¥t1¥t4¥t2¥t1¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t¥t1¥t¥t¥t2¥t32
10,000¥t2,000,000


すみません、 ¥t がタブ文字だと思ってください。

で、用意したRubyスクリプトはこれ。

#usr/bin/ruby
while line = ARGF.gets
line.gsub!(/([¥d]{3}|[¥d]{2}|[¥d])/) {"(#{$1})"}#3桁までの数字を( )で囲む
line.gsub!(/([¥d])),(([¥d])/) {"#{$1},#{$2}"}#桁区切りカンマ前後の( )を削除
print line
end




5月12日訂正:CSVじゃない。タブ区切りだ。
最近、以前にも増してこの手の間違いを……(^^;
以後気をつけよう。


5月13日訂正:せうぞーさんのおかげでもっと手軽に置換できることがわかりました。スクリプトは以下のとおり。

#usr/bin/ruby
while line = ARGF.gets
line.gsub!(/([¥d,]+)/) {"(#{$1})"}
print line
end

スポンサーサイト



これって、数字しか入らないって分かっているんですよね? それとも文字列も入ることが予測されるのかしら?
あと、桁区切りのカンマって3桁で入っていなければ、文字列扱いってことなんでしょうか? これだと(入力まちがいで)桁間違いしてるとパーレンで囲まれませんから同じだと思うんですけど。。

えっと、勘違いしてるかもしれませんが、、[?d,]+だけでは用はたりないかな。
もしかしたら、3桁でカンマになっていないものを探すってことでしょうか?
(?d{1,3})(,?d{1,3})*ってのもあんまり意味がないですか?

あ、文字化け。EUCだ、うちと同じ^^
?dは¥dですね

さっそくのご指南、感謝です!
おっしゃるとおり、数字しか入らないことがわかっています。
どうしてなのか、「少しずつ置換して、余分な置換をしたところは戻し置換する」というあまり良くない癖がついているみたい(^^;

[¥d,]+ だけで用が足りますね。
勉強になりました。

rubyてワンライナーできひんの?

できます。
-e オプションで。
実はCLさんの書き込みを見て今調べました。(^^;

一行野郎でうまく変換できました(^^;
こんなにお手軽だとは。

ところで、EXCELにコピペして「セルの書式」→「ユーザー定義」でかっこで囲むって手もありかなと思ってたけど、半角かっこを全角に置換する必要があるので2度手間なんですよね。
これからは一行野郎を活用しよう(^^)

コメントの投稿





管理者にだけ表示を許可する

トラックバック

http://kstation2.blog10.fc2.com/tb.php/35-b3577b1b

(新しい記事)← 作業メモ:テキスト処理2
「DTPの勉強部屋」 ブログ、スタート →(古い記事)

 | HOME | 

カレンダー

04 | 2023/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

FC2カウンター

2006年3月28日カウント開始

Amazon

FC2 Affiliate

動くPDF

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

最近の記事

最近のコメント

最近のトラックバック

Lc.ツリーリンク

RSSリンク

直感カテゴリーツリーV1.1

ブログ内検索

ブロとも一覧

marumi

神楽崎 ゆう


■ ブログ名:I'm writing NOVEL

七篠 銀字


■ ブログ名:風と夜空と氷の国

MS


■ ブログ名:へなちょこDTP

桜桃


■ ブログ名:追憶の桜吹雪

瑪瑙 輝遊


■ ブログ名:千里の道も一歩から

magatu


■ ブログ名:unsigned

暁 鷲 (あかつき しゅう)


■ ブログ名:空を裂け!

NewMark

C-Roll