国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

《windows應用高級編程-C#編程篇》書中程序的小問題及改進

2024-07-21 02:18:22
字體:
來源:轉載
供稿:網友
清華大學出版社《windows應用高級編程-c#編程篇》,2003年1月第1版,benny johansen & matthew reynolds等著,張哲峰譯,在第八章文件操作中的一個記事本小程序,有三個小問題,其中兩個同性質問題
問題一:streamreader streamreader=new streamreader(filestream); 當打開的文件是中文字符時,會出現亂碼。
當打開文件的同時,將讀取的文件內容轉化為streamreader類型,使用的是.net平臺默認的編碼方式,從而導致讀取時的編碼類型不一致,最后的數據當然出現亂碼。
原句改為streamreader streamreader=new streamreader(filestream,encoding.default); 就可以解決問題
本句中用encoding.default,表示采用文本文件中原有的編碼類型編碼
問題二:
private void menufilesave_click(object sender, system.eventargs e)
{
savefilewithname(m_filename);
}

private void savefilewithname(string filepath)
{
if(filepath!=null)
{
savefile(filepath);
m_filename=filepath;
setmodified(false);
}
else

{
savefiledialog1.filter="text files(*.txt)|*.txt|all files(*.*)|*.*";
savefiledialog1.filterindex=1;
savefiledialog1.restoredirectory=true;
if(savefiledialog1.showdialog()==dialogresult.ok)
{
savefile(savefiledialog1.filename);
m_filename=savefiledialog1.filename;
setmodified(false);
}
}
}
當運行程序,而沒有打開任何文本文件,在編輯后,如果選擇“文件”-->“另存為”不會出現問題,當按“保存”時將出現問題,提示“空路徑名是非法的”,這是因為在按“保存”時,促發menufilesave_click事件,執行savefilewithname(m_filename),但此時m_filename為空,因為沒有打開過文件,以至導致錯誤
解決的辦法很簡單,設置一變量,判斷是否打開過文件
private bool isopened;
void setopened(bool m)
{
isopened=m;
}

bool isopened()
{
return isopened;
}
在打開文件時,setopened(true);
發生保存文件事件時,
private void menufilesave_click(object sender, system.eventargs e)
{
if(isopened())
savefilewithname(m_filename);
else
savefilewithname(null);
}
先判斷是否打開過文件,如果打開過,則用savefilewithname(m_filename);如果沒有打開過,則savefilewithname(null),此時功能相當于“另存為”,將出現一個savefiledialog

問題三:case dialogresult.yes: savefilewithname(m_filename);
acanceleventargs.cancel=false;
break;
運行程序,而沒有打開過文件,編輯后沒有保存關閉時,將出現同2的錯誤提示,原因一樣,
改進為:case dialogresult.yes: if(isopened())
savefilewithname(m_filename);
else
savefilewithname(null);
acanceleventargs.cancel=false;
break;




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新兴县| 汉川市| 呼图壁县| 乐清市| 军事| 浦江县| 营口市| 北安市| 伊通| 从化市| 苏州市| 饶阳县| 旺苍县| 郓城县| 天祝| 安泽县| 太原市| 新乐市| 大姚县| 沽源县| 闸北区| 山东省| 武乡县| 定西市| 金平| 麻阳| 安西县| 唐山市| 类乌齐县| 白河县| 富宁县| 惠东县| 博兴县| 乾安县| 玉田县| 锡林浩特市| 南漳县| 临江市| 平湖市| 喀喇沁旗| 绥芬河市|