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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) vbaの計算 if elseと範囲について 6 2022/11/26 01:49
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
2024年に成し遂げたこと
今年も残すところわずか。 皆さんが今年達成したことを教えていただきたいです。 どんな小さなものでも構いません。
-
前回の年越しの瞬間、何してた?
いよいよ2025年がやってきますね。 年越しのスタイルは人それぞれ。 2024年を迎える瞬間は何をしていましたか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
メモリ不足
Visual Basic(VBA)
-
メモリと配列に関して
Visual Basic(VBA)
-
メモリ不足になってしまう。
Visual Basic(VBA)
-
-
4
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
5
VB.NETでのnothing の意義について
Visual Basic(VBA)
-
6
OutofMemory.Exceptionのエラー
Visual Basic(VBA)
-
7
C#のOutOfMemoryException発生要因について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量の変数を定義するにはどう...
-
VBA 変数名に変数を使用したい。
-
配列の要素がすべてカラかどう...
-
エクセルの列一括書き込み
-
エクセルでXY座標に並べられた...
-
countif/sumifのようなVBA関数
-
VBA: Select Caseを短くしたい
-
(VBA) 配列の文字列を昇順で並...
-
C#でbyte配列から画像を表示さ...
-
vba フィルター 複数条件 3つ以...
-
配列のペースト出力結果の書式...
-
vb2008 MIDB関数
-
C#のeuc-jp変換について
-
リストボックスに複数列表示し...
-
エクセルのセル最終行取得
-
Access VBA について質問があ...
-
C++ 文字列変数と16進数の比較
-
対数変換のついて
-
DataGridViewで変更した値を反...
-
テキストファイルのフィールド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
エクセルでXY座標に並べられた...
-
Excel2010のinputboxで複数デー...
-
vba フィルター 複数条件 3つ以...
-
Dir関数で読み取り順を操作でき...
-
配列の中の最大値とそのインデ...
-
構造体配列の特定のメンバーをF...
-
配列のペースト出力結果の書式...
-
VB6のメモリ解放に関して
-
COBOLの基本的な事なので...
-
定数配列の書き方
-
Excelのメモリ(配列)の上限は2G...
-
OutOfMemoryExceptionの回避策...
-
Segmentation Fault (メモリ制限?)
-
Redim とEraseの違いは?
-
VBAでMODE関数をつくる
-
VB.NETの配列にExcelから読み込...
-
CheckBoxの配列化
-
コンボボックスのインデックス...
おすすめ情報