各位前辈,小弟是个学。net的,是个应届生,没有什么经验。最近想做个txt阅读器,如果各位前辈能告诉我txt阅读器的原理,或者告诉我从那下手,小弟将不胜感激。

解决方案 »

  1.   

    txt阅读器?NND,第一次听说,楼主很有创意,加油
      

  2.   

    楼主是想编个记事本吧?看你想编个怎样程度的记事本,单单是txt文件的打开以及保存和复制、剪切、粘贴功能的实现的话,其实不难,如果考虑很多细节,编个跟Windows记事本不相上下的程度的话就有难度了。
      

  3.   

    我没写过c/s,但一直写b/s看看我的说法对不对。你可以试试。在窗体上面加上下拉菜单按钮我相信你都会了吧。之后在页面内加一个,可以显示内容的控件。什么控件,我
    没有具体做过,自己去找一下。之后当点击比如打开菜单时,可以弹出一个地址选择器。之后,把选中的路径取给文件读取对像。打开。具本细节自己找。大体思路无非是这样。
      

  4.   

    楼主可以用显示文字的控件,比如TextBox ,RichTextBox,都可以,
    做的好的话可以类似于Windows的记事本哦。可以参考用文件流读写。方便好用!
      

  5.   

    txt阅读器这不是很正常的嘛!手机上的MOTO-TXT没用过吗?
      

  6.   

    其实就是打开TXT文件,用个RichTextBox来显示就OK了!
    你要实现点怎么样的功能呢?
      

  7.   

    txt格式的文档,如果用在电脑上,阅读器也用不到吧,只有装上操作系统了,肯定能阅读txt文档.
    倒是听说过有一个叫exebook的小东西,可以把好多txt的文档,汇集到一块,相当于一个电子图书的东西!
      

  8.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                this.openFileDialog1.ShowDialog();
            }
            private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
            {
                StreamReader hc = new StreamReader(this.openFileDialog1.FileName.ToString());
                this.richTextBox1.Text = hc.ReadToEnd();
            }
        }
    }
    其他就看你要具体什么样的功能了!
      

  9.   

    刚才忘说了
    StreamReader hc = new StreamReader(this.openFileDialog1.FileName.ToString(),System.Text.Encoding.GetEncoding("GB2312"));//指定下编码,不然会有乱码的!
      

  10.   


    MOTO-TXT没用过,用手机版office不就行了.
      

  11.   

    用RichTextBox来实现确实是最简单的方法,不过我自己就不喜欢这样,我是使用Textbox然后使用StreamReader来读取的,贴出我写的读文件方法以及保存文件的方法给楼主参考下吧:先在using那里添加这个:
    using System.Collections;private void ReadFile(string filepath)
            {
                try
                {
                    FileStream aFile = new FileStream(filepath, FileMode.Open);
                    StreamReader sr = new StreamReader(aFile, Encoding.Default);
                    
                    ArrayList arrText = new ArrayList();                /*while (sr.Peek() != -1)
                    {
                        string strLine = sr.ReadLine();
                        arrText.Add(strLine);
                    }*/
                    arrText.Add(sr.ReadToEnd());  //作用跟上面的注释语句基本等效,不过我觉得这个更好。                string[] arrString = new string[arrText.Count];
                    arrText.CopyTo(arrString, 0);
                    txtTextArea.Lines = arrString;
                    sr.Close();
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "打开文件失败!");
                }
            }        private void SaveFile(string filepath)
            {
                FileStream aFile = new FileStream(filepath, FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(aFile, Encoding.Default);            try
                {
                    foreach (string oneLine in txtTextArea.Lines)
                        sw.WriteLine(oneLine);                //这段注释代码跟上面的foreach语句作用等效
                    /*int i;
                    for (i = 0; i < txtTextArea.Lines.Length - 1; i++)
                    {
                        sw.WriteLine(txtTextArea.Lines[i]);
                    }*/                sw.Close();
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "保存文件出错!");
                }
            }
      

  12.   

    第一次贴代码,刚才找不到贴代码的功能,我又没有修改帖子的权限,现在唯有再发过一次。用RichTextBox来实现确实是最简单的方法,不过我自己就不喜欢这样,我是使用Textbox然后使用StreamReader来读取的,贴出我写的读文件方法以及保存文件的方法给楼主参考下吧:先在using那里添加这个:
    using System.Collections;private void ReadFile(string filepath)
            {
                try
                {
                    FileStream aFile = new FileStream(filepath, FileMode.Open);
                    StreamReader sr = new StreamReader(aFile, Encoding.Default);
                   
                    ArrayList arrText = new ArrayList();                /*while (sr.Peek() != -1)
                    {
                        string strLine = sr.ReadLine();
                        arrText.Add(strLine);
                    }*/
                    arrText.Add(sr.ReadToEnd());  //作用跟上面的注释语句基本等效,不过我觉得这个更好。                string[] arrString = new string[arrText.Count];
                    arrText.CopyTo(arrString, 0);
                    txtTextArea.Lines = arrString;
                    sr.Close();
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "打开文件失败!");
                }
            }        private void SaveFile(string filepath)
            {
                FileStream aFile = new FileStream(filepath, FileMode.OpenOrCreate);
                StreamWriter sw = new StreamWriter(aFile, Encoding.Default);            try
                {
                    foreach (string oneLine in txtTextArea.Lines)
                        sw.WriteLine(oneLine);                //这段注释代码跟上面的foreach语句作用等效
                    /*int i;
                    for (i = 0; i < txtTextArea.Lines.Length - 1; i++)
                    {
                        sw.WriteLine(txtTextArea.Lines[i]);
                    }*/                sw.Close();
                }
                catch (Exception exc)
                {
                    MessageBox.Show(exc.Message, "保存文件出错!");
                }
            }
      

  13.   

    刚好我以前在学校也开发个一个记事本,楼主需要的话可以找我要,分要给我哦~~呵呵.
    119654848#qq.com #替换成@
      

  14.   

    晕,我竟然一分都没有,楼主觉得用RichTextBox来实现很有意思吗?我觉得用那个简直就是拼积木,你觉得你用RichTextBox学会了什么?我的那个读txt文件的方法注释了的代码实际上很有用的,你想读一些有固定规则的txt文件的话,那那个注释的代码可以说就是基本,但如果仅仅是读一个txt文件的话,还是用ReadToEnd()比较好,所以我才注释了那段代码,改用ReadToEnd()。话说回来,楼主该不会是连“方法”都不会用吧?难道还要我像楼上那样,连Openfiledialog都要给你写出来?
    嘛,算了,发发牢骚而已。可以当我没说过,“分”这些就算了,只是让我觉得楼主你有点“是非不分”而已。
      

  15.   

    突然发现,我对楼上某位仁兄的代码有点误会,没看清楚,不好意思,虽然楼上某仁兄是用了RichTextbox,但并不是用了RichTextBox的Load()方法。
      

  16.   

    用什么语言先不说,因为各有各的语言,而且我现在也在做。
    我用过易和C#,大体的流程是:添加可显示文本控件->可用流根据用户选择路径打开文本文件->可添加读取书签->字体颜色和文本控件的背景色设置。
      

  17.   

    补充一下楼主,下面给出部分制作TXT阅读器的代码:需要控件:
    RichTextBox1,Button1需要引用命名空间:
    using System.IO思路:
    OpenFileDiailog ofd = new OpenFileDiailog();  //实例化OpenFileDiailog
    ofd.ShowDailog();        //向用户弹出选择文件对话框
    if(ofd.fileName!=""){   //如果用户选择了文本文件路径RichTextBox1.Text=   
    File.ReadAllText(ofd.fileName,Encoding.Default);  //通过用户选择的文本文件路径,用默认编码读取文本数据,并用RichTextBox1接受数据
    }
    如果楼主还有疑问,请mail:[email protected]  或加我QQ,乐意为你解答疑问。
    C#这门语言还是有前途和钱途的,希望你能继续努力。