全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:4611
推到 Plurk!
推到 Facebook!

請教關於Memo的問題

答題得分者是:mephise
student38
一般會員


發表:22
回覆:13
積分:7
註冊:2010-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-24 10:05:19 IP:120.114.xxx.xxx 訂閱
我使用Memo接收rs232傳輸的資料顯示,但傳了差不多1.2分鐘會使chart畫圖delay和使程式當掉,想請問是接收顯示資料太大所造成的記憶體不足嗎?
請問該如何釋放掉@@?


[code cpp]
String buffer;
char data_array[4]={0};
unsigned int check_1,msb,lsb,val,check_2;



buffer = (Comm1->Input); //接收資料
data_array[0] = char(buffer.SubString(1,1).c_str()[0]);
data_array[1] = char(buffer.SubString(2,1).c_str()[0]);
data_array[2] = char(buffer.SubString(3,1).c_str()[0]);
data_array[3] = char(buffer.SubString(4,1).c_str()[0]);

check_1 = data_array[0] & 0xff;
msb = data_array[1] & 0xff;
lsb = data_array[2] & 0xff;
check_2 = data_array[3] & 0xff;
val = (msb << 8) | lsb;


if( check_1 == 85 && check_2==170 )
{
val = (msb << 8) | lsb;
Edit5->Text = val;
Series1->Add(Edit5->Text.ToDouble(),Now().TimeString(),clRed);


}


Edit1->Text = check_1;

Edit2->Text = msb;
Edit3->Text = lsb;
Edit4->Text = check_2;
//================================
/* if (val>0)
{
count1 ;
}
Label1->Caption = IntToStr( count1); */


Memo1->Text=Memo1->Text check_1 "," msb "," lsb "," check_2;
Memo1->SelStart=Memo1->Text.Length();
Memo1->SelLength=0;

Comm1->DataCount=0;
buffer=Comm1->Input;//清空緩衝區
[/code]






//============================//
新手問題雖然拙劣,但卻是我進步的方向

編輯記錄
student38 重新編輯於 2010-12-23 19:18:16, 註解 無‧
mephise
高階會員


發表:4
回覆:149
積分:205
註冊:2004-02-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-01-18 11:35:32 IP:60.250.xxx.xxx 訂閱
這要看您BCB的版本來決定, BCB 6 的 Memo 最多好像只能承載 64K 的資料
如果要清除 Memo 的內容, 只要 Memo1->Lines->Clear 就可以了

------
Mephise Chen
前興德工程師
student38
一般會員


發表:22
回覆:13
積分:7
註冊:2010-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-01-19 10:52:23 IP:120.114.xxx.xxx 訂閱
喔喔 原來只有64k! 我也有試過使用清除過.但是每20筆存一下時就清除,但是在每20筆存一次會發生覆蓋過去..每辦法從上一筆20更新下去請問該如何實做會比較好?
mephise
高階會員


發表:4
回覆:149
積分:205
註冊:2004-02-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-01-19 11:04:59 IP:60.250.xxx.xxx 訂閱
不要用 Memo1->Text 的方式
改成使用 Memo1->Lines->Add()的方式一行一行加上去

此外 Memo1->Lines->Count 會得到目前有多少行資料了
當 Count 值等於 20 的時候再做您想做的事情就好了

------
Mephise Chen
前興德工程師
系統時間:2024-04-26 11:18:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!