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

使用IdTCPServer傳送Word檔的問題

答題得分者是:mustapha.wang
mufou
一般會員


發表:10
回覆:15
積分:10
註冊:2003-07-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-17 14:01:42 IP:211.72.xxx.xxx 未訂閱
我使用OleContainer開啟Word檔 而用IdTCPServer傳送Wrod檔 程式如下 TMemoryStream *ms1=new TMemoryStream; //因為工具列的因素,所以Word檔開在Form2上 Form2->OleContainer1->SaveToStream(ms1); AThread->Connection->WriteStream(ms1, true, true, 0); 而在Client端接收時 TMemoryStream *ms1=new TMemoryStream; IdTCPClient1->ReadStream(ms1, -1, false); ms1->SaveToFile("xxx.doc"); 此時Server端這邊會出現 Interface not supported的個錯誤訊息在Server端的 AThread->Connection->WriteStream(ms1, true, true, 0);這行程式上 感覺好像是write不出去, 整個傳送方法應該是這樣吧? 因為我有改成Memo傳送的話就可以了, 如下 Form2->OleContainer1->SaveToStream(ms1);改成 Memo1->Lines->SaveToStream(ms1);就可以了 所以請問要怎麼解決阿 要由Client端將Server端Word檔取回要怎麼弄呢?使用IdTCPServe元件的話.. 謝謝
mufou
一般會員


發表:10
回覆:15
積分:10
註冊:2003-07-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-17 17:00:04 IP:211.78.xxx.xxx 未訂閱
目前是先用其他方法解決了 就是改用TFileStream來傳檔 就是直接傳送檔案,而不是從OleContainer的SaveToStream來傳過去 程式大概如下    不知道是不是不能用TMemoryStream來傳 還是希望有人來解答一下 //>>>
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-17 20:44:27 IP:218.1.xxx.xxx 未訂閱
Form2->OleContainer1->SaveToStream(ms1); ms1->Position=0; AThread->Connection->WriteStream(ms1, true, true, 0); IdTCPClient1->ReadStream(ms1, -1, false); ms1->Position=0; ms1->SaveToFile("xxx.doc"); 注意流的位置,很多关于流的函数都是从流的当前位置处理。我有时候也难了解到底是不是,反正加个Position=0没错。 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
mufou
一般會員


發表:10
回覆:15
積分:10
註冊:2003-07-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-18 11:09:15 IP:61.218.xxx.xxx 未訂閱
引言: Form2->OleContainer1->SaveToStream(ms1); ms1->Position=0; AThread->Connection->WriteStream(ms1, true, true, 0); IdTCPClient1->ReadStream(ms1, -1, false); ms1->Position=0; ms1->SaveToFile("xxx.doc"); 注意流的位置,很多关于流的函数都是从流的当前位置处理。我有时候也难了解到底是不是,反正加个Position=0没错。 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
謝謝mustapha.wang的回應 我是都沒有加ms1->Position=0;這行 不過我後來還是會遇到相同問題 在Client端連到Server端抓回Word檔後 Server端還是會出現錯誤訊息Interface not supported 在ms1->Position=0這行 所以好像還是不行 而附上測試程式 http://delphi.ktop.com.tw/loadfile.php?TOPICID=21015459&CC=470001
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-18 15:27:29 IP:218.80.xxx.xxx 未訂閱
Interface not supported一般与com/activex等有关,不可能是AThread->Connection->WriteStream(ms1, true, true, 0);这句的问题。应该是Form2->OleContainer1->SaveToStream(ms1);这句出错。         久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
mufou
一般會員


發表:10
回覆:15
積分:10
註冊:2003-07-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-18 17:03:38 IP:211.72.xxx.xxx 未訂閱
引言: Interface not supported一般与com/activex等有关,不可能是AThread->Connection->WriteStream(ms1, true, true, 0);这句的问题。应该是Form2->OleContainer1->SaveToStream(ms1);这句出错。 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
恩....我也覺得好像是Form2->OleContainer1->SaveToStream(ms1);這邊 所以後來改用其他方法來傳 那就先這樣了 謝謝
系統時間:2024-05-18 19:04:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!