くだすれC++Builder(超初心者用)その3
at TECH
842:デフォルトの名無しさん
08/11/25 00:27:26
>>839 試行錯誤中のコードだろうけど、どうみても一度しかnewしていない変数を
ループ中で何度もdeleteするのがおかしいことに気付かないとまずいよ。
Memo2にxをAddStringsするのもループを抜けてからじゃないと、
1,1,2,1,2,3,1,2,3,4,1,2,3,4,5,…みたいに行の登録が重複する。
Memo1が1500行だとMemo2、Memo3は(Σk=n(n+1)/2になるので)1125750行になってしまうよ。
それだけ大きいとTMemoコンポーネントのメモリ制限に引っかかってるんじゃないかな?
てかMemo2、Memo3が最初からあるのならx、yなんて不要。直接入れればいい。
4つめがEEEでもRRRでもなく空の時にスペース三つ出力したいなら
this->Memo2->Lines->Clear();
this->Memo3->Lines->Clear();
TStringList* Values = new TStringList;
AnsiString asSpacer = " "; //スペース三つ
for( int i = 0; i < Memo1->Lines->Count; i++ ){
Values->CommaText = Memo1->Lines->Strings[ i ];
this->Memo2->Lines->Add( Values->Strings[ 1 ].Trim() );
AnsiString as4thValue = Values->Strings[ 3 ].Trim();
this->Memo3->Lines->Add( as4thValue.IsEmpty() ? asSpacer : as4thValue );
}
delete Values;
あと >>840 で出ているデータが本物のデータからのコピーなら、ピリオドとカンマが
入力ミスで混ざってて、自動で正しく分離する事は無理。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4357日前に更新/254 KB
担当:undef