dポイントプレゼントキャンペーン実施中!

VBScriptについて質問です。
処理の中でReadTextを使ってテキストファイルを読み込み、
別のファイルへ出力する処理があるのですが、
読み込みファイルが大きいと、下の二つの方法の処理時間に大きく違いが発生します。
特に②の処理はファイルサイズが150MBくらいになると1時間以上かかりました…。

プログラムの処理にあまり詳しくなく、
結果が同じなのに処理時間の違いがどうして発生するのか分かりません。
どなたか教えてもらえませんか?

①ファイルの中を一行ずつ読み込み、一行ずつ出力

stm1.LoadFromFile 読み込みファイル
Do While stm1.EOS = False
str = stm1.ReadText(-2)
stm2.WriteText str,1
Loop
stm2.SaveToFile 出力先ファイル,2

②ファイルごと読み込み、出力

stm1.LoadFromFile 読み込みファイル
str = stm1.ReadText(-1)
stm2.WriteText str,0
stm2.SaveToFile 出力先ファイル,2

A 回答 (2件)

ちょっと、そのコードでは、分かりませんね。


Set stm1 = CreateObject("ADODB.Stream)
のようにオブジェクトがあって、その文字コードを変換しているのではありませんか。それを書かないと、話が見えてきません。

150M辺りですと、1時間掛かったという記憶はありませんが、それでもやり直しなどできないような長い時間ですす。
もし、文字コード変換などでしたら、nkf を使ったほうが圧倒的に速いです。Win用は、Vectorにもあったように思います。
    • good
    • 0
この回答へのお礼

お返事が遅くなりごめんなさい。

仰る通り、文字コード変換の一部分です。
教えて頂いた別の方法なども踏まえて、もう少し考え直してみることにします。
ご回答ありがとうございました。

お礼日時:2016/03/05 16:34

150MBで1時間とは解せません。

PCの搭載メモリが小さすぎでは?何GBですか?
    • good
    • 0

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