C#读取记事本文件的代码,记事本内文字为“我是中国人”,有的可以读取有的不可以,求解释!!!!

stringfilepath=null;OpenFileDialogop=newOpenFileDialog();if(op.ShowDialog()==DialogRe... string filepath=null ;
OpenFileDialog op = new OpenFileDialog();
if (op.ShowDialog() == DialogResult.OK)
{
filepath = op.FileName;
}
StreamReader sr = new StreamReader(filepath,Encoding.GetEncoding ("gb2312") );

while (sr.ReadLine() != null)
{
string text = sr.ReadLine();
richTextBox1.Text = text;
}
sr.Close();
分不多,忘高人指导,感激不尽
当读取E盘的另一个txt文件时却可以,搜了半天说是编码设置问题,但是还是读不出来
展开
 我来答
baisedebing
2012-11-10 · TA获得超过202个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:115万
展开全部
while (sr.ReadLine() != null) 这里读取一行判断是否为空
{
string text = sr.ReadLine(); 这里又读取一行把这个值赋值给richTextBox1,这行数据如果不是“我是中国人”这句话。那么必定是其他的值,或者是空值。
richTextBox1.Text = text; 上面的text值就会影响到richTextBox1的值
}
这里有问题。
可以改成
string text = sr.ReadLine().tostring(); 这里首先读取一行
while (text != "") 至于怎么判断第一行读取的是回车换行这个也是要考虑的问题,回车应为"\r”,换行为"\n"
{
string text = sr.ReadLine(); 这里是第二行、第三行……
如果不想要回车换行加if(text !="\r\n"){ richTextBox1.Text = text; }
richTextBox1.Text = text;
}
这样做就可以了
追问
嗯嗯,的确是这样的,richTextBox1.Text += text;就把所有的都读出来了,再问下如果是doc文档的话应该怎么来读取呢??
追答
额  doc文档比较麻烦了
要引用微软的dll文件 这个 你上网查一下 比较麻烦 一时说不清楚
linex0816
2012-11-09 · 超过26用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:55.3万
展开全部
while (sr.ReadLine() != null)中readline已经读了一行了。如果你的“我是中国人”在第一行的话。当然显示不了。
追问
那怎么改呢??改为 sr.read()吗?
追答
用readend方法来全部读取到数组,在循环显示到textbox。

很久没来知道 都忘了回答了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式