線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1192
推到 Plurk!
推到 Facebook!

使用spcomm元件 rs-232 傳輸大量資料時為何會停止傳輸??

尚未結案
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-17 12:35:32 IP:220.130.xxx.xxx 未訂閱
使用spcomm元件 rs-232 傳輸大量資料時為何會停止傳輸?? 檔案大小約3mb    傳送部份      =========================================================    
void __fastcall TFormMain::Button3Click(TObject *Sender)
{
       String memo3= Memo3->Text;
       char *dd;
       dd=memo3.c_str();
       unsigned long ff;
       ff=memo3.Length();
       Comm1->WriteCommData(dd,ff);
}
       
========================================================== 接收部份 ==========================================================
 
void __fastcall TFormMain::Comm1ReceiveData(TObject *Sender,
      Pointer Buffer, WORD BufferLength)
{    AnsiString InMessage = (char *) Buffer;
Memo4->Lines->Add( InMessage );
       } 
==========================================================
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-17 12:50:59 IP:59.104.xxx.xxx 未訂閱
memo 放不下 3M 的。
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-17 18:46:33 IP:59.104.xxx.xxx 未訂閱
不懂大大的意思~~ Memo怎麼會放不下3M呢~~ 3M幾秒鐘就讀完了呀 而且資料沒lose呀 還是不知如何解決~~ 發表人 - yachu721 於 2005/08/17 18:47:34
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-17 19:00:45 IP:61.59.xxx.xxx 未訂閱
引言: 不懂大大的意思~~ Memo怎麼會放不下3M呢~~ 3M幾秒鐘就讀完了呀 而且資料沒lose呀 還是不知如何解決~~
我記得用 memo->add.... 這樣子。沒法子在 memo 裡放入 3M 所以你的停止。應是 memo 滿了。而當在那邊吧。
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-17 19:43:50 IP:59.104.xxx.xxx 未訂閱
我用Memo讀取3.5M的資料(之前的資料) 用以下的迴圈來使用Add是沒有問題的呀....     
 
for(int a=0;aLines->Count;a  )
  {
  Memo4->Lines->Add(Memo3->Lines->operator [](a));
  }
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-17 20:20:54 IP:61.59.xxx.xxx 未訂閱
那我就不知道了。^_^ 我只知道我用個 timer 定時去把 memo 的資料清掉 程式就會動作了。^_^ 你可以試看看囉。
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-17 22:04:25 IP:59.104.xxx.xxx 未訂閱
謝謝大大的回答~~ 發現資料較大的時候 接收的部分 2MB最後兩百多字遺失 3MB最後兩百多字遺失 就是會固定最後兩百多字遺失 不知是哪的問題~~~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-18 06:53:02 IP:210.64.xxx.xxx 未訂閱
你去試試看是不是不寫到 memo 而是開一個檔案。把接收到的直接寫到 file 去 是不是就解決問題了。
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-18 08:08:28 IP:59.104.xxx.xxx 未訂閱
大大的意思是這樣嗎 TStrings *ya=new TStringList; ya->Add((char *) Buffer); ya->SaveToFile("C:\\1.nc"); delete ya; 但是好像也是一樣~~
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-18 08:31:49 IP:210.64.xxx.xxx 未訂閱
no,
on .h
FILE *fout;    on create
fout = fopen("out.txt", "w b");    on destruct
fclose(fout);    on recive
fwrite(...buffer....);
用法自己查一下吧。我沒背。^_^ 看這樣能不能解決。 我以前用這樣子就解決問題了。
系統時間:2024-05-08 17:20:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!