
VBScript初心者です。
VBScriptで配列を扱った処理を作ろうとしています。
具体的には、ファイルAを読み取り、特定の条件に合うものだけをファイルBに書き込みます。
a.ファイルAを1行ずつ読み込み、配列strに格納
b.配列strの中から特定の条件に合うものをファイルBにwriteline
ファイルAは毎日行数が変動するファイルです。
困っているのは、配列strを宣言するときに要素数まで指定しないと使えない(ように見える)
ことです。調査不足かもしれませんが、ネット検索上はそう解釈できました。
この場合、上記処置をしようとすると、
1.ファイルAオープン
2.ファイルAの行数を取得
3.ファイルAクローズ
4.配列strを2で取得した行数を要素数として宣言
5.ファイルAオープン
6.上記a,bを実施
となり、ファイルAを2回オープンクローズすることになり、本当にこんなやり方しかないの?
と思ってしまいます。
ReDimという配列の再宣言という概念もあるようですが、再宣言前に格納したデータがすべて
消えてしまう動きに見え、使えそうもありません。
配列を適当に大きな要素数で定義すればできるといえばできますが、上述の通りファイルAは
日々行数が変動するファイルであり、想定を上回る行数になった場合に困るため、適正値の
判断がしにくいです。
それしか手がないならあきらめますが、当方が知らないだけで、ほかに良い方法があるのでは
と期待しております。
不勉強で恐縮ですが、ご教示お願いします。

No.2ベストアンサー
- 回答日時:
redim preserveとすることで、以前の内容が保障されます。
以下のスクリプトを実行してみてください。
redimのサンプルです。
--------------------------------
Option Explicit
Dim stime()
redim preserve stime(0)
stime(0) = "2011/11/18 09:48:25"
redim preserve stime(1)
stime(1) = "2011/11/19 09:48:25"
redim preserve stime(2)
stime(2) = "2011/11/20 09:48:25"
dim st
for each st in stime
WScript.Echo st
next
--------------------------------------
No.3
- 回答日時:
というか、
ファイルAを全て読み込まないと、ファイルBに書き出す行が判断できないのですか?
通常ですとファイルから一行ずつ読み取って、その行が書き出す行であれば書き出し、という処理になると思います。
書き出す行の判断に複数行が必要だとしても、変数をフラグに使用するなどすれば実現できると思います。
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objInput = objFS.OpenTextFile("input.txt", 1, False)
Set objOutput = objFS.CreateTextFile("output.txt")
Do While ObjInput.AtEndOfStream <> True
rem 実際は条件に合う行のみ書き込み実施
objOutput.WriteLine(ObjInput.ReadLine)
Loop
objInput.close
objOutput.close
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル内の(&H0A)を(&H0D0A)...
-
CSVファイルによる検索の高速化
-
テキストファイルを後ろから読...
-
日本語混じりのファイルをラン...
-
バイナリファイルでOutOfMemory...
-
バイナリの読み込みから出力まで
-
VBAでテキストファイルの改行を...
-
Unicodeのファイル読み込みがう...
-
DXFファイルをVBで取り込み、図...
-
C言語でのファイル読み込み
-
Fortranの'read'のVBへの書き換...
-
配列操作について
-
エクセルのプロパティーでセキ...
-
エクセルvbaでdocuworksprinter...
-
エクセルのデータをメモ帳に貼...
-
エクセルのハイパーリンクがコ...
-
VBAでフォルダ内のhtmlファイル...
-
EXCEL VBAを使ったファイル解析...
-
EXCELのVBAでEOFを誤認識
-
vbsでファイルやフォルダのコピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルを後ろから読...
-
DXFファイルをVBで取り込み、図...
-
ファイル入力のデータを構造体...
-
バイト型のデータを16進表記で...
-
バイナリデーター内の文字を検索
-
ファイルの読みこみ方法とファ...
-
VBScriptの配列は、要素数を指...
-
フォートランのソース変更を試...
-
txtファイルの数字を計算
-
CSVファイルによる検索の高速化
-
日本語を配列に収め、そして表...
-
ファイルをメモリに出力する方法
-
RGBのバイナリデータをCImageに...
-
データグリッドビューの一覧に...
-
C or C++で2次元のデータの並び...
-
Cで2次元配列にCSVファイルを...
-
VBAでテキストファイルを複数開...
-
バイナリ出力
-
バイナリファイルでOutOfMemory...
-
バイナリファイルの一部分をカ...
おすすめ情報