
VB(.NET Framework)とは便利なもので、
dim a as integer, b as integer
a = 100
b = 100
dim c(a, b) as double '→ 配列の要素数を実行時に決定できる
'↓ たったこれだけの記述で、テキストファイル全行を配列に格納できる
'↓ しかも、配列の要素数は勝手に決まる
Dim lines As String() = System.IO.File.ReadAllLines("abc.txt", enc)
等が可能であり、N88BASICやTurboC++の頃と比べると隔絶の感があります。
しかし、世の中そう甘くはなく、
a = 10000
b = 10000
だと、
dim c(a, b) as double のところで・・・
あるいは、"abc.txt"が100万行もあるものだと、
Dim lines As String() = System.IO.File.ReadAllLines("abc.txt", enc) のところで「OutOfMemoryException」が発生します。
私が一応調べたところ、OutOfMemoryExceptionについて鋭く切り込んでいるものとしては、
http://msdn.microsoft.com/ja-jp/library/9w766t6y …
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.ph …
http://oshiete1.goo.ne.jp/qa4920589.html
と、あといくつかしかありませんでした。
32bitアプリケーションには、確かに「利用できるメモリ量は通常2GB」という壁があるのかもしれませんが、100万行でもファイルサイズはせいぜい400MByte程度ですよ。「連続したメモリ領域の確保に失敗する」のであれば、OSの力を借りてでも何とかするべきでしょう。
「64 KB 以上のメモリを消費する大規模メソッドのプログラミングを行わない」なんて、昔のsmallモデルを思い出します。
64bitOSが実稼働する時代になっても、やはり
・メモリを確保できない可能性を考慮する
・危なそうな時は、工夫する
しかないものなのでしょうか。
確かに、「それが常識」と言ってしまえばそれまでなのですが。
Listジェネリッククラスをちまちまと使うより、素の配列の方がはるかに処理が軽いはず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VB.net 任意の例外を発生させるには・・・
Visual Basic(VBA)
-
メモリ不足
Visual Basic(VBA)
-
VB6(SP5)+OO4OでCreateObjectが失敗する
Visual Basic(VBA)
-
-
4
メモリと配列に関して
Visual Basic(VBA)
-
5
C#のOutOfMemoryException発生要因について
C言語・C++・C#
-
6
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
7
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
8
ExecuteNonQueryメソッドの戻り値
その他(プログラミング・Web制作)
-
9
Excelのメモリ(配列)の上限は2Gではないのか
Excel(エクセル)
-
10
OutofMemory.Exceptionのエラー
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#でbyte配列から画像を表示さ...
-
VBA 変数名に変数を使用したい。
-
VB.NETの配列にExcelから読み込...
-
Dir関数で読み取り順を操作でき...
-
複数のtextboxの処理を一括で行...
-
定数配列の書き方
-
エクセルの列一括書き込み
-
レコードセットの中身を配列に...
-
構造体配列内の文字列検索のよ...
-
COBOLの基本的な事なので...
-
配列のペースト出力結果の書式...
-
エクセル(VBA)の空白配列の削除...
-
エクセルでXY座標に並べられた...
-
C#で作成したdllをVBScriptで使...
-
大量の変数を定義するにはどう...
-
現在コピーされているものによ...
-
コンボボックスのインデックス...
-
RPG 配列宣言について
-
エクセル VBA 変数を一括で宣言...
-
EXCELを使って、アクセスログを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
Dir関数で読み取り順を操作でき...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
複数のtextboxの処理を一括で行...
-
Excelのメモリ(配列)の上限は2G...
-
配列の中の最大値とそのインデ...
-
大量の変数を定義するにはどう...
-
Excel2010のinputboxで複数デー...
-
COBOLの基本的な事なので...
-
構造体配列内の文字列検索のよ...
-
VBAでMODE関数をつくる
-
Redim とEraseの違いは?
-
VBScriptでCSVファイルを読み出...
-
VB6のメモリ解放に関して
-
VB.NETの配列にExcelから読み込...
-
Segmentation Fault (メモリ制限?)
-
ActiveReports(アクティブレポ...
おすすめ情報