- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBScript(WSH)でのランダムアクセス)
VBScript(WSH)でのランダムアクセス
このQ&Aのポイント
- VBScript(WSH)を用いてファイル内を検索し、特定文字列の次の行に文字列を追加するスクリプトを作成しています。
- VBScriptのシーケンシャル方式では一度全ての行を読み込んで上書きするため処理が多くなってしまいます。
- VBScriptでのランダムアクセスは不可能なため、他の方法を探しています。ご教授いただければ幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1)VBスクリプトにしろVBにしろ、ランダムアクセスは、レコード長(L)を一定にすることにより、第X番目のレコードの始まりは、(X-1)*L+1で、それより長さLを取り出すため、開始位置が計算できることにより、システムがそれに対応しているので、読み出せるのです。 (2)さてX番目のレコードを取り出せても、問題にしている文字列が、第何番目と第何番目と・・・のレコードにあるかはどうして管理しましたか。それに対する備え・対策なくしては、ランダムファイルを使ったとしても、何にもなりません。 (3)通常はそれに対して、語句の辞書と第何番目のレコードに出現するかの索引を(本番利用に備えて、本番でないときに)作成します。 この視点が欠けているのではないでしょうか。 (4)(3)の時間は編集やソートなどの時間が必要で、 何回も本番で索引を繰り返し使うケースか、本番で遅延を許されないケースでないと、(1回しか処理しないようなケースでは)「総なめ」する方が全体では、処理時間が少ないこともあり得ます。プログラムロジックも簡単で、メモリを大きく使える昨今ではスピードも問題ないケースも あり得ます。
お礼
回答ありがとうございます。 >常はそれに対して、語句の辞書と第何番目のレコードに出現するかの索引を(本番利用に備えて、本番でないときに)作成します。 >この視点が欠けているのではないでしょうか。 そうですね。 容易に考えていました。 総なめの方は完成し、特に問題がないのでこのままのスクリプトで進めます。 ありがとうございました。