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

SaveFileDialog與OpenFileDialog 練習所遇問題

答題得分者是:chris_shieh
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-28 04:48:58 IP:59.104.xxx.xxx 未訂閱
所遇問題 : (另)存新檔 會產生檔案 但大小為零             也就是 要存的資料沒進去 使用元件: 2個按鈕  1個PictureBox 1個全域變數 private Stream MyStreamReg;    按鈕程式碼: 讀檔因該可以 因為有讓圖秀在PictureBox上 private void OpenFile_Click(object sender, System.EventArgs e) { Stream myStream; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\" ; openFileDialog1.Filter = "bmp files (*.bmp)|*.bmp" ; openFileDialog1.FilterIndex = 1 ; openFileDialog1.RestoreDirectory = true ; if(openFileDialog1.ShowDialog() == DialogResult.OK) { if((myStream = openFileDialog1.OpenFile())!= null) { // Insert code to read the stream here. 我有發現 這裡不管是元程式 或寫成 MyStreamReg=myStream; pictureBox1.Image=Image.FromStream(myStream,true); 都是可以使圖顯示出來 MyStreamReg=myStream; pictureBox1.Image=Image.FromStream(MyStreamReg,true); 也因此 這裡我自認為myStream 所指引的就是那張圖的完整資料 所以我存檔才會那樣寫 (既然是自認為 又加上存檔失敗 因該我有哪裡搞錯了) myStream.Close(); } } } 存檔如我想問 有生其檔 但無內容= =" private void SaveFile_Click(object sender, System.EventArgs e) { Stream myStream; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "bmp files (*.bmp)|*.bmp" ; saveFileDialog1.FilterIndex = 1 ; saveFileDialog1.RestoreDirectory = true ; if(saveFileDialog1.ShowDialog() == DialogResult.OK) //你按了OK { if((myStream = saveFileDialog1.OpenFile()) != null) //輸入不是空的 { // Code to write the stream goes here. myStream=MyStreamReg; 這行就是因為之前的自認為 而誕生的= =" MessageBox.Show("HELLO") ; //單純放給自己看的= =" myStream.Close(); } } } 就麻煩 懂的人 幫我指點修改一下吧^^" 發表人 - rik 於 2005/07/28 04:50:07 發表人 - rik 於 2005/07/28 05:01:35
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-28 11:54:41 IP:203.70.xxx.xxx 未訂閱
OpenFile_Click中 MyStreamReg=myStream; 是讓MyStreamReg指向myStream 所以當myStream.close以後 MyStreamReg也是空的 所以你應該是要把myStream 換成 MyStreamReg 不需要myStream區域變數來轉換(不然就要把myStream內容拷貝給MyStreamReg) 而且在 SaveFile_Click中才close MyStreamReg @瞭解越多.懂得越少@
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-28 12:44:25 IP:140.114.xxx.xxx 未訂閱
引言: OpenFile_Click中 MyStreamReg=myStream; 是讓MyStreamReg指向myStream 所以當myStream.close以後 MyStreamReg也是空的 所以你應該是要把myStream 換成 MyStreamReg 不需要myStream區域變數來轉換(不然就要把myStream內容拷貝給MyStreamReg) 而且在 SaveFile_Click中才close MyStreamReg @瞭解越多.懂得越少@
然來如此@@" 果然思考上有欠缺@@" 最主要這樣寫的原因是 程式原稿是參考別人的^^" (try and error派@@") 原來我欠缺的是當myStream.close以後 MyStreamReg也是空的 ^^" 感謝指導^^" ========================確認解決================== 我把OK的程式PO出^^ private void OpenFile_Click(object sender, System.EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\" ; openFileDialog1.Filter = "bmp files (*.bmp)|*.bmp" ; openFileDialog1.FilterIndex = 1 ; openFileDialog1.RestoreDirectory = true ; if(openFileDialog1.ShowDialog() == DialogResult.OK) { if((this.MyStreamReg = openFileDialog1.OpenFile())!= null) { } } } private void SaveFile_Click(object sender, System.EventArgs e) { byte Register; int GetReturn=0; Stream myStream; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "bmp files (*.bmp)|*.bmp" ; saveFileDialog1.FilterIndex = 1 ; saveFileDialog1.RestoreDirectory = true ; if(saveFileDialog1.ShowDialog() == DialogResult.OK) //你按OK { if((myStream = saveFileDialog1.OpenFile()) != null) //輸入不是空的 { try { MyStreamReg.Position=0; //如果曾經利用過MyStreamReg //MyStreamReg.Position 值視呼會變 // Code to write the stream goes here. for(;GetReturn!=-1;) //做到讀完 { GetReturn=MyStreamReg.ReadByte(); //判斷是否讀完 if(GetReturn!=-1) { myStream.WriteByte((byte)GetReturn); } } } catch { MessageBox.Show("傳送 要儲存的資料出錯") ; } MessageBox.Show("HELLO") ; myStream.Close(); } } } 發表人 - rik 於 2005/07/28 14:24:07
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
系統時間:2024-05-15 4:31:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!