人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

採用した方に1000pt差し上げます。
mdbまたはCSVファイルの置換ソフトを探しています。
前回質問したのですが、Accessのテーブル内にHTMLの構文(半角換算で8000?9000文字)が入っているフィールドがあり、置換が大変な状況です。
そこで一旦CSVなどに吐いて置換を出来ないかと思いました。
レコードは全部で10000位です。
大規模なデータが扱えることと、出来れば高速であること、置換機能に長けていることが重要です。
実際に使ったことのある方で、ある程度レビューを書いて頂けると助かります。
どうぞよろしくお願いいたします。

●質問者: rupopon
●カテゴリ:コンピュータ 学習・教育
✍キーワード:access CSV HTML MDB ソフト
○ 状態 :終了
└ 回答数 : 7/7件

▽最新の回答へ

1 ● きゃづみぃ
●18ポイント

レコードを すべて選択して コピー。

エクセルに貼り付け。

エクセルで置換(Ctrl+F)して

アクセスに 変換後のテーブルを用意し、そこを開いて

貼り付けとする。

◎質問者からの返答

エクセルでは置換出来る文字数が少なすぎました。ありがとうございました。


2 ● りくっち
●17ポイント

http://q.hatena.ne.jp/1185159566

↑の質問も拝見していたんですが、置換したい内容が漠然としすぎていて回答のしようがありませんでした。

htmlの構文に限らず、置換対象がもっと具体的であれば、

ACCESSやExcelの機能自体でもできる可能性はあります。

ちなみにACCESSのデータが重い場合csvに吐き出して別処理してACCESSに戻すということもよくありますが、

10000程度のデータならACCESSでも十分だと思います。

(処理内容がよほど複雑でなければ)


例えばhtmlのタグを取りたいということであれば、

http://q.hatena.ne.jp/1181571396#a727348

↑のllusallさんのモジュールでキレイに取れます。


こういったことでなければどんな処理をしたいのかをもう少し詳しく書かれてみてはどうでしょうか。

例えば

といった感じで箇条書きでもかまいません。


特にhtmlのタグの内容の書換えに関しては、

http://www.hi-ho.ne.jp/shige-umeka/page/kaisyu01.html

↑のようなhtmlに特化したものもありますから、

置換内容によっては紹介するソフトも違ってくると思います。



以上ご参考まで。

◎質問者からの返答

説明不足で申し訳ございません。

例えば、半角換算で8000?9000文字のHTMLの

1500~2000文字位を一気に変換したい時があります。

ただ残りの6500~7000文字がレコードによって違うので、フィールド全体を一括で変えることは出来ません。

今はaccessで10数回に分けて置換しています。

accessも検索・置換出来る文字数が少ないので

もっと多い文字数を置換できる方法を探しています。


3 ● mmasuda
●17ポイント

恐らくこの様な答えを望んでいるとは思いませんが、アドバイス代わりに聞いてください。

これを機にsed/awk などの行指向形データの変換ツールに習熟することをお薦めします。

sed/awk なんて・・・・と思う向きにはperl/ruby/python などの言語などでもよろしいかと思います。

正規表現は確かにとっつきにくいですが、excel やテキストエディタで置き換え処理する時間がバカらしいほど簡単にすぐ終わりますよ。

◎質問者からの返答

ちょっと高度すぎて分かりませんが、もし使えるようなら勉強してみます。

ありがとうございました。


4 ● icchan0000
●17ポイント

accessのクエリで新規作成を選択し、ツールバーの「表示」メニューで「SQL ビュー」を選択し、SQL文編集モードにします。

そこで、

update [更新したいテーブル] set [更新したい列名] = replace([更新したい列名],'(更新対象となる文字列)','(更新後の内容)')

と入力し実行してみたらダメでしょうか。

メモ型のフィールドに20000文字ていどのサンプルデータを入れ、3000文字程度の文字列でテストしてみましたが、文字数制限のようなもので引っかかることはありませんでした。

レコード件数が多いので速度的にはやってみないとわかりませんが。

◎質問者からの返答

下記の通りやってみたのですが、うまくいきません。

商品管理テーブルの商品説明というフィールドで、<ビーアール><センター>を<センター>に変えるという式です。(タグはどうやって書くのでしょうか?)

どこか間違っていますでしょうか。

UPDATE 商品管理 SET 商品管理.商品説明 = Replace(商品説明,'(<ビーアール><センター>)','(<センター>)');


5 ● nyankochan
●17ポイント

私は、これをよく使ってます。

http://www.sirmiles.com/software/repl_ace.htm

長い文章でも複数ファイル同時でも置換可能です。

今はヘッダーやフッターを別ファイルから読み出すような仕組みにして

いますが、以前はそういったことも無く、全ファイルに同じ表記をして

いたため、これを使って同じ表記の部分をいっきに全部変換したりしま

した。2000個のHTMLファイルの全フッタ置換とか・・・・。

jpgやgifのようなバイナリは無理ですが、テキストデータのファイルで

あれば、拡張子がなんであれいけるはずです。

◎質問者からの返答

複数のファイルの時は良さそうですね。今回はファイルが一つでデータが多いです。少し試しましたが文字列が長いとスキップされてしまうようです。


1-5件表示/7件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ