アプリ版:「スタンプのみでお礼する」機能のリリースについて

テキスト形式のファイルの編集をしたいのですが
内容は
NO=1
{
(TAB)社員コード=999999
(TAB)入社日=9999/99/99
(TAB)所属=XXXXX
(TAB)社員区分=1
}
というように複数行1レコードとするデータで、所属がXXXXの場合社員区分を変更するというような編集をしたいです。
VBAでFSOやperlのSED、秀丸マクロ等、左記以外にも様々な方法が考えられますが、候補がありすぎで迷っています。どの方法がスマートでしょうか?
お勧めの方法と可能であればソースを提示していただけると助かります
ちなみに行数は約500000行でファイルサイズは30MBあります。

A 回答 (3件)

ノートパッド(30MBが読み込めたか?・・・)等の 所謂 ”テキストエディター ”で ”所属=XXXXX ”を検索して ”所属=yyyyy ” に置き換える・・・操作では ダメですか?



一つづつ順番でも 全て置き換えも 出来ますが・・・?

試しに ノートパッドで 小さなファイルで 試して見ては・・・?
    • good
    • 0

変更が1通り(XXXXX→YYYYY)だとすると、


sed:
sed "s/^\\(\t所属=\\)XXXXX/\\1YYYY/" data.txt > data_new.txt
但し、
""は文字列、\がエスケープとして機能し、\tをタブに展開できる場合。

perl:
perl -npe 's/^(\t所属=)XXXXX/$1YYYY/;' data.txt > data_new.txt
''は\等を変換しない文字列
あるいは
>> henkan.pl <<
while(<>){
s/^(\t所属=)XXXXX/$1YYYY/;'
print ;
'}
>> henkan.pl <<
というファイルを作って
perl henkan.pl data.txt > data_new.txt

データがShift_JISで書かれているなら、「だめ文字」に注意
    • good
    • 0

約500000行ファイルサイズ30MBでしたら、アクセスでしょう。


データ表にできれば、文字の置き換えでできます。
ちなみに、所属=XXXXXから一義的に社員区分が決められるのでしたら、一旦社員区分は削除した方が早いかも。
    • good
    • 0
この回答へのお礼

回答ありがとうございます

アクセスですか。思い至らなかったので候補にも挙がっていませんでした
ところで、アクセスって1レコードが複数行に渡っているデータをテーブルにインポートって出来ました?
1レコード1行のデータしか対応できないと思っていました。
>データー表にできれば
とありますが、どのようにデータ表にするのでしょうか?

お礼日時:2010/08/09 12:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!