• ベストアンサー

VBScript 配列

いつもお世話になっております。 WindowsXP環境上でVBScript 5.6が稼働可能とします。 VBS内で配列を作成しようと思うのですが 作成前に以下が知りたいです。 (1)配列の要素数はいくつまで作成可能か? (2)各要素内には最大何文字記憶可能か? 将来的に、 1行(約5000~10000文字)の20000行ファイルを1行ずつ読み込んで 1要素ずつ格納するVBSを作成予定だったのでその事前確認がしたいのです。 ご存知の方がいれば、ご教授願いませんでしょうか? 何卒、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

使用可能なメモリ容量によるんじゃないですかね。 とは言え限界値はあると思います。 例えば配列を宣言する際に要素数を指定するわけですから、その数値は Long 型の限界値になるとか。 また、文字列型の変数へ格納できる最大値は約 2GB です。 http://msdn.microsoft.com/ja-jp/library/cc392195.aspx という言語仕様を質問するのもいいけれど、質問文にあるような「これからやること」なんてのは、本番を待たずともすぐに確認できちゃう話でしょ。 Dim hoge(20000) Dim i For i = 0 To 20000 hoge(i) = Space(10000) Next MsgBox "ok" これを実行できるか確認してみればいいだけだし、 実行してみてダイアログが表示されている間にタスク マネージャーを見れば CSCRIPT.EXE のメモリ使用量もわかるし。 ちなみに私の Windows 7 x64 4GB RAM では上記で 395,632KB のメモリ使用。 さらに質問文にある要件の2倍である、配列の要素数 40000、1つの要素に対する文字数 2000で試してみてもメモリの使用量は 1,571,736KB ぐらい。 背景を聞く前にまず分かってる範囲の必要な部分は試してみる。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

(1)配列の要素数はいくつまで作成可能か? 大抵はメモリの空き容量に依存。 メモリがいくら使えるようになっても、いまのところ言語的には、2147483647 まで。 VBSCRIPTは基本的にvaliant型しかないけど内部的には、長整数型を使っているみたいで、 それで格納できる上限値、2147483647が上限のようです。 IE6.0で確認。 でも、これってマニュアルに見当たらないのね。。。 VBScriptのバージョン依存ではなく、ブラウザ依存の可能性もあります。 テスト方法:aa1()とaa2()を実行してみるとよい。 sub aa1() dim x(2147483647) end sub はメモリ不足のエラーがでますが sub aa2() dim x(2147483648) end sub は、別のエラーがでます。 なお、次元数はリファレンスに記載されています。 (2)各要素内には最大何文字記憶可能か? リファレンス見てもらうと分かります。 リファレンスをみるにはどこを見るかは、他の方の回答参照願います。

すると、全ての回答が全文表示されます。

関連するQ&A