改行削除No.19727
たろ親父 さん 05/08/06 09:21
 
こんにちは、教えてやってください。1ページに219000カ所くらいの改行があるので
すが、csv形式に変更するために、一度全て削除して、あとから、必要なマークのみ
再度改行に変更するのですが、4時間で1/3くらいしか置き換えができません。高速
化する方法は何かあるのでしょうか?宜しくお願い致します。

[ ]
RE:19727 改行削除No.19728
ENCODINGSHIFTJIS さん 05/08/06 09:52
 
テキスト処理エンジンとして使うには、エディタは制約があります。
1行の最大長を越えた場合の動作も?

大量データの安全処理の方針としては、
行は短く
強調表示はoff、(範囲を強調するタイプは処理速度低下)
など。

CSV 作成では、逆に
先に、必要なマークのみ ★[改行] に
★[改行] 以外を削除
とか。

後は、エディタでなく、コマンドでの ほう

[ ]
RE:19728 改行削除No.19729
たろ親父 さん 05/08/06 12:33
 
ENCODINGSHIFTJISさん ありがとうございます。
何か、テキストを高速で置き換えできるツールなり何かご存じありませんか? CGI
で処理って事でしょうか?コマンド?
宜しくお願い致します。

[ ]
RE:19729 改行削除No.19730
でるもんた さん 05/08/06 13:34
 
> 何か、テキストを高速で置き換えできるツールなり何かご存じありませんか?
> CGIで処理って事でしょうか?コマンド?
> 宜しくお願い致します。

Perl などのプログラム言語をおすすめします。
CGI についてご存じなら、その CGI を書くためにもっとも一般的に使われている
言語だといえばおわかりいただけるでしょう。

[ ]
RE:19729 改行削除No.19731
ENCODINGSHIFTJIS さん 05/08/06 14:15
 
>何か、テキストを高速で置き換えできるツールなり何かご存じありませんか? 
検索語
テキスト 高速 置換
で、Web検索すると出ますよ。

課題:  ★[改行] 以外の改行を削除
解答

検索: ([^★])\n
置換: \1
正規表現、全置換

ーーーーーーーーーーーーーーーーーーーーーーーーー
テキスト上で 深いデータ処理、は UNIXの世界で昔話です。
UNIXのコマンドに、いくつか名残があります
(今じゃ、使う機会も無いので、知らないのが普通)。
MS-DOS 時代から各種の【テキストデータ処理】ツールが
作られてます。

GREP、SED、UNIQ、SORT、HEAD、TAIL、CUT、nkf
の単純なものは、Windows に移植が多数あります。
.NET 版とかもあり。
www.vector.co.jp や検索で出ます。

● 一般人向きではありませんが
テキストをEUCにできるなら、coLinuxの smbmount で
Linuxの全コマンドを使えます。
(Cygwin より安定です)

次の段階はスクリプト言語で、プログラミング。

---------------------------------------------------
テキストデータ処理は、おもて舞台のものじゃない
スタンドアローン で動く軽量DBを 使えます。

MSDNな人なら、 MSDE
Javaり たいなら、 HSQLDB
C++系では、SQLite
Apache族、Derby http://pcweb.mycom.co.jp/news/2005/08/05/011.html
などなど、XMLDB もスタンドアローンのもあり。

DBではないが、SQLのSELECT文を使えるのもあり
Log Parser 2.2 日本語版

[ ]
RE:19731 改行削除No.19732
ENCODINGSHIFTJIS さん 05/08/06 14:26
 
コマンドを使う場合は、処理可能な 最大行長を事前確認しておくこと。

[ ]
RE:19730 改行削除No.19733
たろ親父 さん 05/08/07 01:23
 
でるもんたさん
ありがとうございます。
色々挑戦してみます。

[ ]
RE:19731 改行削除No.19734
たろ親父 さん 05/08/07 01:25
 
ENCODINGSHIFTJISさん
ありがとうございます。
あれやこれや、少しは知っている物もありそうなので
挑戦してみます。

[ ]
RE:19734 改行削除No.19736
たろ親父 さん 05/08/07 09:59
 
もう一つ質問させてください。
置き換えで、これは秀丸ではないのですが、
郵便番号 たとえば
111-1234の後に,カンマをつけたいのですが、全ての郵便番号
3桁数字ハイフォン4桁数字を置き換えの対象とする場合は
どのように表記すれば良いのでしょうか?

###-####とか ***-****は違うみたいですが
つまり、今ある郵便番号と同じ数字の最後に,ピリオドをつけるように置き換える為
の既存の数字の表現方法です。

宜しくお願い致します。

[ ]
RE:19736 改行削除No.19737
たろ親父 さん 05/08/07 11:37
 
説明が悪かったようなのですが、郵便番号と住所をCSVカンマ区切りにしてる途中で、
郵便番号と住所の間にカンマを入れるのを忘れています。
郵便番号と、ひっついている住所の間にカンマを入れるのには、どのような置き換え
方法をすれば良いでしょうか?
宜しくお願い致します。

111-1234東京都・・・・って感じを111-1234,東京都・・・のようにデー内全てに置き換えた
いのです。

[ ]
RE:19736 改行削除No.19738
きいろいまふらあ さん 05/08/07 11:43
 
>置き換えで、これは秀丸ではないのですが、

正規表現のルールは処理系(ソフトウェア)によって異なります。
(ある程度共通の部分も多いですが。)
秀丸でないのであれば、その処理系(Excel?Perl?あるいは…?)に関する解
説書(ヘルプファイル含む)なり掲示板なりメーリングリストなりをあたられる
のがよいのではないでしょうか?

ちなみに 秀丸の場合は、
[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] → \0,
という置換になります。
最近は、もうちょっと簡単な書き方もできますが、どっちにしても秀丸の話なの
で割愛します。

[ ]
RE:19738 改行削除No.19739
たろ親父 さん 05/08/07 12:37
 
きいろいまふらあさん 
ありがとうございます。
この場で誠に失礼なのですが、ちなみに、エクセルでもできるのでしょうか?
ご存じなら、教えてやっていただけませんでしょうか?
宜しくお願い致します。

[ ]
RE:19739 改行削除No.19740
小電流 さん 05/08/07 15:45
 
>この場で誠に失礼なのですが、ちなみに、エクセルでもできるのでしょうか?
ヘルプを読みましょう。

[ ]
RE:19740 改行削除No.19744
ENCODINGSHIFTJIS さん 05/08/08 09:58
 
>ヘルプを読みましょう。
Excelヘルプ では
文字列または数値の検索に使用できるワイルドカード文字
部分的に等しい文字列、または一部の数字が等しい数値を検索するには、ワイルド
カード文字を使います。ワイルドカード文字は 1 つまたは任意の数の文字を表します。

ワイルドカード文字 検索する文字列

? (疑問符) 疑問符と同じ位置にある任意の 1 文字
たとえば、「sm?th」と入力すると "smith" や "smyth" が検索されます。

* (アスタリスク) アスタリスクと同じ位置にある任意の数の文字
たとえば、「*east」と入力すると "Northeast" や "Southeast" が検索されます。

~ (チルダ) (?、*、または ~ の前に入力) 疑問符、アスタリスク、またはチルダ
たとえば、「fy91~?」と入力すると "fy91?" が検索されます。
ーーーーー-----------------
Office資格を持っている人に、VBA や 長~い計算式 を書いてもらえば
Excelでも、処理できますね。

[ ]
RE:19727 改行削除No.19748
takuara さん 05/08/08 19:02
 
にたような現象があり、回避できたことがあったので
参考までに報告しておきます。

20M近くあるファイルで、置換コマンドで大量な置換を行ったんですが、
置換がめちゃくちゃ遅くて30分程しても終わらなかったんで、
原因を調べたところ、自動保存の設定をしていたため
その自動保存の更新回数の度に20Mのファイルを保存する動作を
しているようで、時間がかかっていました。

一時的に、自動保存しない様にしたところ、1分もかからず
終わることができました。

[ ]
RE:19740 改行削除No.19753
たろ親父 さん 05/08/09 09:31
 
そうですね。^_^;

[ ]
RE:19744 改行削除No.19754
たろ親父 さん 05/08/09 09:32
 
丁寧にお教えいただきありがとうございます。

[ ]
RE:19748 改行削除No.19755
たろ親父 さん 05/08/09 09:32
 
一度試してみます。ありがとうございます。

[ ]