重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

VBScript(WSH)を用いてファイル内を検索し、特定文字列の次の行に文字列を追加するスクリプトを作成しています。
シーケンシャル方式を用いた方法では作ることが出来ました。
ただ、それだと一度全ての行をを読み込み特定位置に追加した後、もう一度全て上書きしているため処理が多くなってしまいます。
そこでランダムアクセスを用いて任意の位置に文字列を挿入できないかと考えました。
VBの
Open ファイルパス For Random As ~
も試しましたがうまく動きませんでした。(構文として認識していない?)
VBSでのランダムアクセスは不可能なのでしょうか?
良い方法がございましたらご教授ください。
よろしくお願いします。

A 回答 (1件)

(1)VBスクリプトにしろVBにしろ、ランダムアクセスは、レコード長(L)を一定にすることにより、第X番目のレコードの始まりは、(X-1)*L+1で、それより長さLを取り出すため、開始位置が計算できることにより、システムがそれに対応しているので、読み出せるのです。


(2)さてX番目のレコードを取り出せても、問題にしている文字列が、第何番目と第何番目と・・・のレコードにあるかはどうして管理しましたか。それに対する備え・対策なくしては、ランダムファイルを使ったとしても、何にもなりません。
(3)通常はそれに対して、語句の辞書と第何番目のレコードに出現するかの索引を(本番利用に備えて、本番でないときに)作成します。
この視点が欠けているのではないでしょうか。
(4)(3)の時間は編集やソートなどの時間が必要で、
何回も本番で索引を繰り返し使うケースか、本番で遅延を許されないケースでないと、(1回しか処理しないようなケースでは)「総なめ」する方が全体では、処理時間が少ないこともあり得ます。プログラムロジックも簡単で、メモリを大きく使える昨今ではスピードも問題ないケースも
あり得ます。
    • good
    • 0
この回答へのお礼

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

>常はそれに対して、語句の辞書と第何番目のレコードに出現するかの索引を(本番利用に備えて、本番でないときに)作成します。
>この視点が欠けているのではないでしょうか。

そうですね。
容易に考えていました。
総なめの方は完成し、特に問題がないのでこのままのスクリプトで進めます。
ありがとうございました。

お礼日時:2003/02/24 09:28

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