当前位置:编程学习 > C#/ASP.NET >>

求高手解读一下这段代码

   private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Title = "打开文件";
            openFileDialog1.Reset();
            openFileDialog1.Filter = "文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)//打开对话框
            {
                string strLine;
                filename = openFileDialog1.FileName;
                FileStream afile = new FileStream(filename, FileMode.Open, FileAccess.Read);
                StreamReader sr = new StreamReader(afile);
                strLine = sr.ReadLine();
                richTextBox1.Text = string.Empty;
                while (strLine != null)
                {
                    richTextBox1.Text += strLine + "\r\n";
                    strLine = sr.ReadLine();
                }
                sr.Close();
                afile.Close();
                
            }
这段代码运行后,打开一个文件,但是在richTexBox1中显示的是一些乱码,所以我想问的是:(1)怎么可以让richTexBox1显示的是原文件内容,而不是乱码?
(2):  while (strLine != null)
                {
                    richTextBox1.Text += strLine + "\r\n";
                    strLine = sr.ReadLine();
                }

这代码作用是干嘛的? --------------------编程问答-------------------- 应该是你打开的文件编码问题,查查
2。循环输出,每次读一行。 --------------------编程问答-------------------- StreamWriter sw = new StreamWriter(filename,false,Encoding.GetEncoding("gb2312")); --------------------编程问答-------------------- 1、你用richtextbox显示二进制文件想不乱码都难
2、把读取的字符串追加到richtextbox中 --------------------编程问答-------------------- 2.读文件的经典结构,就是将文件的全部内容显示到文本框中。 --------------------编程问答-------------------- 把txt另存为,在另存为对话框中看看编码方式是什么?换个编码方式看看。
顺道提供个函数,带编码参数的。
    public static List<string> ReadText(string filepath,Encoding encode)
        {
            if (File.Exists(filepath))
            {
                List<string> contents = new List<string>();

                System.IO.FileStream fs = new System.IO.FileStream(filepath, FileMode.Open, FileAccess.Read, FileShare.None);
                StreamReader sr = new StreamReader(fs, encode);

                string strLine = sr.ReadLine();  //按行读取

                //循环读出数据,数据存在data里面。
                while (strLine != null)
                {
                    contents.Add(strLine);
                    strLine = sr.ReadLine();
                }

                //关闭文件流
                sr.Close();
                fs.Close();

                return contents;
            }
            else
            {
                return null;
            }
        } --------------------编程问答-------------------- 读取时设置编码,这里设置成GB2312,当然看你的读取的文档是什么编码就设置成什么编码
 StreamReader sr = new StreamReader(afile);
改成
 StreamReader sr = new StreamReader(afile,Encoding.GetEncoding("GB2312"));

(2):

 while (strLine != null)//文件未结束
  {
  richTextBox1.Text += strLine + "\r\n";//一行一行地显示到richTextBox1.Text
  strLine = sr.ReadLine();//一行一行的读取文件
  }

--------------------编程问答-------------------- while (strLine != null)
  {
  richTextBox1.Text += strLine + "\r\n";
  strLine = sr.ReadLine();
  }
把文件内容读出来,直到文件最后 --------------------编程问答--------------------
引用 6 楼  的回复:
读取时设置编码,这里设置成GB2312,当然看你的读取的文档是什么编码就设置成什么编码
 StreamReader sr = new StreamReader(afile);
改成
 StreamReader sr = new StreamReader(afile,Encoding.GetEncoding("GB2312"));

(2):
C# code

 while (str……

改完后,只能正确的打开txt类型的文件,word的文档还是乱码,怎么才能使word文档也能正常显示?谢谢! --------------------编程问答--------------------
引用 8 楼  的回复:
引用 6 楼  的回复:

读取时设置编码,这里设置成GB2312,当然看你的读取的文档是什么编码就设置成什么编码
StreamReader sr = new StreamReader(afile);
改成
StreamReader sr = new StreamReader(afile,Encoding.GetEncoding("GB2312"));

(2):
C# code……

Word是特殊的格式,不能直接操作,.net提供了操作word的类库去操作,即将Word的Interop库(Microsoft.Office.Interop.Word.dll)加入你项目的引用,利用Word的对象模型来获取你想要的图文内容。
参考http://hi.baidu.com/hclred/blog/item/dacba61c420a538887d6b64b.html
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,