- - PR -
String変数の最大格納文字数
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-09-27 21:23
お世話になっております。
StringBuilder変数は最大格納サイズはがInt32.MaxValueであるとMSDNにありますが、String変数の最大格納サイズはどのくらいのないか教えて下さい。 現在、StringBuilder変数を使用して最大格納サイズを変更しなかったので、バッファオーバーになってしまいました。 StringBuilder変数の最大格納サイズを変更すればよいのか、もしくはStringBuilderではなくString変数に変更したほうがいいのか悩んでおります。 ほかになにかいい案があればご教授願います。 | ||||
|
投稿日時: 2004-09-27 23:00
StringBuilderの最大サイズを超えるようなデータを処理しようとしているのですか?その場合、
2(Charのサイズ) * Int32.MaxValue = 約4GB です。何を使おうがメモリ中でやろうとすると、現状物理的に難しいですし、32bitシステムではどっちにしろ難しいです。Streamを使いチョコチョコと処理するとか、工夫しなければだめです。 | ||||
|
投稿日時: 2004-09-27 23:05
このあたりの話ですかねぇ?
| ||||
|
投稿日時: 2004-09-28 14:28
ご返信ありがとうございます。
StringBuilderを既定容量の16で使用していたためエラーが発生してしまいました。 DBに格納されている複数のデータをファイルに書き出す処理をしていて、DBのデータをStringBuilderに突っ込んで、一気にファイルに書き出そうとしてました。 yaさんの言う通りStreamを使用することにします。 ありがとうございました。 | ||||
|
投稿日時: 2004-09-28 15:54
既定は16ですけど、これは勝手に倍々と増えていきます。 そのため、既定容量で使用していたからエラーがでた、というのも おかしいように思います。 どこか別の原因なんじゃないですかね。 #エラーの内容も詳しくはわからないので、なんともいえないですが。 | ||||
|
投稿日時: 2004-09-28 16:38
Exceptionのエラーメッセージにはエラーパラメータ:repeatcount
と出力されていましたので、StringBuilderの容量オーバーだと思ったのですが。。。 このエラーメッセージに何か心当たりはありますか? | ||||
|
投稿日時: 2004-09-28 17:42
正確なエラーメッセージと、そのエラーが発生する周辺のプログラムぐらいは
提示されないと何ともいえないですね。 判断するための情報が少なすぎます。 [ メッセージ編集済み 編集者: 小野@どっとねっとふぁん 編集日時 2004-09-28 17:43 ] | ||||
|
投稿日時: 2004-09-28 18:12
こんにちは。
(素朴な疑問なのですが) バッファオーバーであると思われた際に、変数に格納していたバイト数は どのくらいだったのでしょう。。。? |