- - PR -
MFC CString の大量連結
«前のページへ
1|2|3
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-27 14:16
>エディットコントロールに改行区切りの長いテキストを表示するために、FOR文でまわ
>しながら大量のCStringオブジェクトを+=で連結しているのですが、これはメモリ効率的には >問題ないのでしょうか? CStringとは全然関係ないのですが、もしTextファイルから読み込んでいるならファイルサイズ 分だけcharの領域つくってバイナリモードで読み込めば早くないですか (ファイルサイズのチェックは必要になりますが) 全然違う処理だったら申し訳ない (追加) 書いている間に書き込みが・・・ 全然違う処理でしたね、はずかしい^^; それはそうとCStringって上限32Kじゃなかったでしたっけ? [ メッセージ編集済み 編集者: ゆうじゅん 編集日時 2004-02-27 14:18 ] | ||||||||
|
投稿日時: 2004-02-27 16:52
舌足らずですいませんT-T なぜ連結するか→改行区切りでSetWindowTextでエディットコントロールにセットし表のように見せたいため。(そもそもこれが間違い?^^;) なぜ文字列を行単位で…→データを保持した構造体の配列を1要素ずつ必要なメンバを表示用に整形しているため。 といった感じでしょうか^^; >それはそうとCStringって上限32Kじゃなかったでしたっけ? 一応1万件のデータを表示することはできたので大丈夫だと思うんですが…?^^; | ||||||||
|
投稿日時: 2004-02-27 17:03
>一応1万件のデータを表示することはできたので大丈夫だと思うんですが…?^^;
うわ、勘違いでしたね(GetLengthがint型だから32Kのわけないか) なにかで見たような記憶があって書いたのですが、たぶんVC1.0のときのマニュアルかも しれない。 お騒がせしてもうしわけありません。 | ||||||||
|
投稿日時: 2004-02-27 17:33
[横道]
16ビットの頃はそんな制限があったと思いますよ。 (VC4.0までかな・・・) 昔、サンプルだかであったCEditViewを使用した際に32Kまでしか 読み込めなかった記憶があります。 [/横道] | ||||||||
|
投稿日時: 2004-03-01 14:34
ほむらです。
あぅせっかく返答もらったのに ごめんなさい。埋もれてました^^;;; -------- takashi氏へ
行単位で整形したものを一括で表示するためにということなんですね。。。 となれば、目をつむってしまうしか^^;;;;; さっきも言ったとおり大量のメモリを確保しておいてそこにコピーしていくなんて方法も あるかと思いますけど、そこまで作り込むメリットもないですしね。 | ||||||||
|
投稿日時: 2004-03-01 15:22
もし作りこむならScrollViewで表示するほうが効率はいいかもしれません。
以下の条件ならそんなに難しくなくつくることはできるはずです。 ・元データが存在する ・元データの件数が明確 ・表示行から元データを紐付けられる また表示内容が変更されることが多く、再表示が発生するならさらに 必要性が高くなると思います。 | ||||||||
|
投稿日時: 2004-03-02 15:33
返答ありがとうございます^^
ふむふむ。CStringで連結せずにTextOutなどで直接描画するのも1つの手かもしれませんね(いってることが違ったらごめんなさい^^;)。
そうなんですねぇ^^; しかし、CStringがこんなに深く考えさせられるとは…。たくさんの貴重な意見どうもありがとうございました。とても勉強になりましたm(_ _)m | ||||||||
«前のページへ
1|2|3
