InDesignタグ付きテキストはSJISで 06/04
InDesignタグ付きテキストの話題ですが、テキスト処理の比重が大きいのでカテゴリは「Ruby/テキスト処理」としました。
名もないテクノ手:「【番外編】ルビを付加する」を拝読しました。
あー、やっぱりそうだったんだ。
こちらの環境(WindowsXP sp2/CS3)では <SJIS-WIN> 以外使えないなあと思っていたのだけれども、そういうことだったんですね。

←ぽちっと押していただけると管理人が喜びます。
名もないテクノ手:「【番外編】ルビを付加する」を拝読しました。
InDesignタグのためにヘッダ「<SJIS-MAC>」を挿入し(InDesignタグはSJIS以外は相性がわるいためやむなく)、別名で保存。
あー、やっぱりそうだったんだ。
こちらの環境(WindowsXP sp2/CS3)では <SJIS-WIN> 以外使えないなあと思っていたのだけれども、そういうことだったんですね。

【正規表現】最短一致 05/20
DTPオペのInDesignおぼえがき:正規表現-何かの文字ではじまり、何かで終わるを拝読しました。
正規表現は“最左最長一致検索”が基本です。
でも、拡張正規表現(いまどきそんな言い方するのかな?)の中には最短一致させるための表現方法が用意されています。
下の例文の中で、「君が好きではない。」と「君が好きだ。」の2箇所にマッチさせる正規表現の一例を挙げてみます。
下の3つの正規表現のうち、一番上の表現だとマッチする文字列が最も広範囲になり、思惑に反して例文のうち行頭の「俺は」以外の文字列にマッチしてしまいます。
それ以外のふたつは同じで、上の例文においては思惑通り2箇所にマッチします。
一番下の表現は、少々古い処理系だと使えないのかな? sedとかだとダメっぽいですよね。
perl5以降とかruby1.6以降とか使ってる人なら問題なさげ。
違ってたらご指摘ください。

←ぽちっと押していただけると管理人が喜びます。
正規表現は“最左最長一致検索”が基本です。
でも、拡張正規表現(いまどきそんな言い方するのかな?)の中には最短一致させるための表現方法が用意されています。
下の例文の中で、「君が好きではない。」と「君が好きだ。」の2箇所にマッチさせる正規表現の一例を挙げてみます。
俺は君が好きではない。おおお。だが彼は君が好きだ。
下の3つの正規表現のうち、一番上の表現だとマッチする文字列が最も広範囲になり、思惑に反して例文のうち行頭の「俺は」以外の文字列にマッチしてしまいます。
それ以外のふたつは同じで、上の例文においては思惑通り2箇所にマッチします。
君が好き.*。
君が好き[^。]*。
君が好き.*?。
一番下の表現は、少々古い処理系だと使えないのかな? sedとかだとダメっぽいですよね。
perl5以降とかruby1.6以降とか使ってる人なら問題なさげ。
違ってたらご指摘ください。

記事紹介:IT Pro 08/06
IT Proにてまつもと直伝 プログラミングのオキテが掲載されています。
記事によると
Rubyの勉強も滞りがちなので、このような情報はモチベーションの維持のためにも読んでおかねば(><)

←ぽちっと押していただけると管理人が喜びます。
記事によると
とのことです。日経Linuxの連載開始前の特別企画(2005年4月号)として,Rubyが他のスクリプト言語やオブジェクト指向言語とどこが違うのか,なぜ便利なのかを中心に解説してもらったもの
Rubyの勉強も滞りがちなので、このような情報はモチベーションの維持のためにも読んでおかねば(><)

JSやVB以外でも 05/23
作業メモ:テキスト処理4 03/28
# 少し前まで、rubyのバージョン1.8.1を使っていた。
# 今は1.8.6が出ているようだが、私の端末には1.8.4が入っている。
さて、今回は名刺の仕事。
00001[タブ]妄想印刷(株)[タブ]いき♂ espresso
といったtsv形式のテキストが提供された。
これをInDesignの台紙にデータ結合で流し込もうと思ったが、今回はCSで制作しなければならない。
しかし、すでに別のオペレータにより面付け状態の台紙が組まれており、テキストを流し込むためのフレーム(1レコード3行分がぎりぎり入る大きさ)が連結された状態で台紙に配置されていた。
流し込む条件は以下の通り。
・各フィールドごとに段落スタイルが用意されている。
従って、支給データをタグテキストに置換して流し込みたい。
(左から順に 01番号 / 02事業者名 / 03氏名 )
・氏名は、支給データは必ず姓と名の間にスペースが入っている。
姓または名いずれかが一文字の場合のみスペースを残し、他はスペースを削除する。
・(株)は株式会社に。

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
# 今は1.8.6が出ているようだが、私の端末には1.8.4が入っている。
さて、今回は名刺の仕事。
00001[タブ]妄想印刷(株)[タブ]いき♂ espresso
といったtsv形式のテキストが提供された。
これをInDesignの台紙にデータ結合で流し込もうと思ったが、今回はCSで制作しなければならない。
しかし、すでに別のオペレータにより面付け状態の台紙が組まれており、テキストを流し込むためのフレーム(1レコード3行分がぎりぎり入る大きさ)が連結された状態で台紙に配置されていた。
流し込む条件は以下の通り。
・各フィールドごとに段落スタイルが用意されている。
従って、支給データをタグテキストに置換して流し込みたい。
(左から順に 01番号 / 02事業者名 / 03氏名 )
・氏名は、支給データは必ず姓と名の間にスペースが入っている。
姓または名いずれかが一文字の場合のみスペースを残し、他はスペースを削除する。
・(株)は株式会社に。

続きを読む »
ひさびさにSED 02/16
今回はsedを使って前処理。
賞状用のデータ処理を行った。
氏名と生年月日が入力されたcsvがデータ入稿したので、賞状の内容はマスターページに作成し、ドキュメントページには氏名と生年月日のテキストフレームのみを置いてCS2のデータ結合にて作業。
# 本当はもっとたくさんのフィールドがあり、様々な条件があって前処理に手間がかかっているけれどもこのエントリの主題には無関係なので割愛。
さてこの賞状、年1回の受注で、従来は賞状の内容のみを印刷し、氏名と生年月日は手書きという仕事だった。

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
賞状用のデータ処理を行った。
氏名と生年月日が入力されたcsvがデータ入稿したので、賞状の内容はマスターページに作成し、ドキュメントページには氏名と生年月日のテキストフレームのみを置いてCS2のデータ結合にて作業。
# 本当はもっとたくさんのフィールドがあり、様々な条件があって前処理に手間がかかっているけれどもこのエントリの主題には無関係なので割愛。
さてこの賞状、年1回の受注で、従来は賞状の内容のみを印刷し、氏名と生年月日は手書きという仕事だった。

続きを読む »
作業メモ:テキスト処理3 06/01
今回は、作業メモ:テキスト処理2と似てるけどちょっとだけ条件が増えたヤツ。
サンプルテキストの内容:

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
サンプルテキストの内容:
2998¥t文字列¥tHOGE¥t¥t1,800,000¥tA
コメント1行目¥t¥t¥t¥t¥t
コメント2行目¥t¥t¥t¥t¥t
2999¥tfoo¥tbar¥t文字列¥t157,500¥tB
3000¥t♂¥t♀¥t¥t105,000¥tW
3001¥t3,000¥t4,000¥t5,000¥t200¥tW

続きを読む »
算用数字を1桁全角/2桁以上半角に 05/19
今夜もヘタレscriptを恥ずかしげもなく(いや恥ずかしいけど^^;)アップ。
# sedメインで使ってた時は、少々スクリプトが長くても気にもしなかったけど。
tr! メソッドで全角数字0-9を半角数字0-9に置換できると思ったらダメだった。
正規表現 [^¥w] で英数字の補集合になると思ったけどなんかちがうっぽい。
一桁数字を全角、二桁以上の数字を半角に置換するスクリプトを考えてみた。
メルアドやURL、小数点や桁区切りカンマを含む数字は置換対象から外す。
という条件で私が書くと、例によってまた長くなっちゃった……

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
# sedメインで使ってた時は、少々スクリプトが長くても気にもしなかったけど。
tr! メソッドで全角数字0-9を半角数字0-9に置換できると思ったらダメだった。
正規表現 [^¥w] で英数字の補集合になると思ったけどなんかちがうっぽい。
一桁数字を全角、二桁以上の数字を半角に置換するスクリプトを考えてみた。
メルアドやURL、小数点や桁区切りカンマを含む数字は置換対象から外す。
という条件で私が書くと、例によってまた長くなっちゃった……

続きを読む »
作業メモ:テキスト処理2 05/16
今回もタブ区切りテキストの置換。
1レコードあたり5フィールドのデータで、原則として空のフィールドはない。
ただし例外としてコメント行がある。
コメント行は第2フィールドのみにデータが入力されており、他の4つのフィールドは空である。
今回施したい処理は以下の通り。
フィールド内のデータは左から順に
1[data]2[data]3[data]4[data]5[data]
という形に囲み、フィールドセパレータのタブは削除。
コメント行はタブのみを削除したい。

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
1レコードあたり5フィールドのデータで、原則として空のフィールドはない。
ただし例外としてコメント行がある。
コメント行は第2フィールドのみにデータが入力されており、他の4つのフィールドは空である。
今回施したい処理は以下の通り。
フィールド内のデータは左から順に
1[data]2[data]3[data]4[data]5[data]
という形に囲み、フィールドセパレータのタブは削除。
コメント行はタブのみを削除したい。

続きを読む »
作業メモ:テキスト処理1 05/12
別にシリーズ化するつもりはないが、おそらく何回かはこのテーマで書くだろうから。
あるいは、モチベーション維持のために書く意志を奮い立たせているだけ……という見方もできるが(^^:
今回は数値のみのCSVファイルタブ区切りテキストを編集。
各フィールドはクォートされていない。
正の整数のみで、桁区切りのカンマはデータに含まれている。
上記の条件で、各フィールドの数値を全角( )で囲む必要が生じた。
まずはCSVタブ区切りテキストの内容を抜粋。

←ぽちっと押していただけると管理人が喜びます。
続きを読む »
あるいは、モチベーション維持のために書く意志を奮い立たせているだけ……という見方もできるが(^^:
今回は数値のみの
各フィールドはクォートされていない。
正の整数のみで、桁区切りのカンマはデータに含まれている。
上記の条件で、各フィールドの数値を全角( )で囲む必要が生じた。
まずは

続きを読む »
















