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

いつもお世話になっております。

WindowsXP環境上でVBScript 5.6が稼働可能とします。

VBS内で配列を作成しようと思うのですが
作成前に以下が知りたいです。

(1)配列の要素数はいくつまで作成可能か?
(2)各要素内には最大何文字記憶可能か?

将来的に、
1行(約5000~10000文字)の20000行ファイルを1行ずつ読み込んで
1要素ずつ格納するVBSを作成予定だったのでその事前確認がしたいのです。


ご存知の方がいれば、ご教授願いませんでしょうか?

何卒、宜しくお願い致します。

A 回答 (2件)

使用可能なメモリ容量によるんじゃないですかね。



とは言え限界値はあると思います。
例えば配列を宣言する際に要素数を指定するわけですから、その数値は Long 型の限界値になるとか。

また、文字列型の変数へ格納できる最大値は約 2GB です。
http://msdn.microsoft.com/ja-jp/library/cc392195 …

という言語仕様を質問するのもいいけれど、質問文にあるような「これからやること」なんてのは、本番を待たずともすぐに確認できちゃう話でしょ。

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 ぐらい。

背景を聞く前にまず分かってる範囲の必要な部分は試してみる。
    • good
    • 0

(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)各要素内には最大何文字記憶可能か?
リファレンス見てもらうと分かります。

リファレンスをみるにはどこを見るかは、他の方の回答参照願います。
    • good
    • 1

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