このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

ファイルの一部を読んで処理をするには

発言者:稲垣@信州
( Date Monday, February 09, 1998 15:00:19 )


 田中先生がworkshop 475の時に話をされていた、ファイルの一部を読み込
んで処理をするという話についてです。

 実際に組み込みたいのはSubject Shareに対してです。

 まず、ファイルの一部を読み込むことは出来ましたが、処理結果を書き込
む所で悩んでいます。処理の前後でデータ量が同じであれば問題は無いと思
うのですが、場合によって処理後のデータ量が変化します。
 Subjectにラベルが無ければ追加をしますし、必要であれば複数行の
Subjectを一行にします。

 となると、やはり2KBづつ読み込み、一番最初は処理をして別ファイルを
作成し次からはそのファイルに追加して行く様に、ある程度のデータ量を
繰り返し読み込んでいくしか無いのでしょうか?


 アドバイス等がありましたら、よろしくお願いします。



→  Subjet Share for Macjrodomo

田中求之 さんからのコメント
( Monday, February 09, 1998 15:56:24 )

ファイルの一部分を書き換えるというのは、きちんとやろうとすると面倒です。

ファイルを全部読み込んでおいて、必要な処理を施してから書き戻すという
一括処理の方が楽なことは確かです。

もしメモリーの制約などによって、少しずつしか読みこむことができないのであれば、

1:元のファイルから少しずつファイルを読み込む( AS の read コマンドを
コントロールして、行単位とか、決めた分量ずつ読み込んでいく。

2:処理した結果をテンポラリファイルに書き込んでいく

3:処理が終わった時点で、元ファイルを消して、テンポラリファイルを元ファイル
と同じ属性(名前、クリエーター、タイプ、作成日など)にする。

という方法をとることは可能です。もっとも、この方法ではリソースなどは
消えてしまいますので、その点は注意が必要です。リソースも残したいの
であれば

3’:処理が終わった時点で、テンポラリファイルの内容を元のファイルに上書きし、
テンポラリファイルを消す。

という処理を行います(こっちのほうが、処理には時間がかかりますが、良いでしょうね)。

稲垣@信州 さんからのコメント
( Monday, February 09, 1998 16:14:25 )

 う〜ん、確かに面倒ですね。

 処理速度を速めたいのとサイズの大きいメイルを処理する為に、この
方法を採用しようかと思ったのですが難しい様ですね。

 やっぱり今まで通りに全部読み込んで処理をした方が楽の様ですね。
メイルサイズの制限に関しては、また別の方法を考えます。

 ただ単にサイズの大きなメイルを処理しないのはTanaka's OSAX1.2以
降で簡単にできる様になりました。ありがとうございます。


重松修 さんからのコメント
( Monday, February 09, 1998 18:58:05 )

直接この件と関係ないのですが、前々から悩んでいることなのですが、
Macjrodomoはいったい何と読むのでしょうか?

本家?Majordomoはめいじゃーどーもかめじゃーどもだとふんでるんですが。

稲垣@信州 さんからのコメント
( Monday, February 09, 1998 20:37:51 )

> Macjrodomoはいったい何と読むのでしょうか?

 わたしは、「マックジョードモ」と呼んでいますが・・。

 因に本家は、「マジョードモ」と呼んでおります。


礒野@とし研 さんからのコメント
( Thursday, March 05, 1998 22:07:55 )

亀レスですが...

スクリプトで処理するには大きすぎるテキストを扱う場合、Jedit2をテキスト
処理のエンジンとして使う手もあります。
検索をかけて、必要な部分だけを置き換えるということはできるはずです。