就是兴趣想学习下.NET
2个问题
1、
text.txt:http://bbs.meizu.com/thread-2112914-1-1.html
http://bbs.meizu.com/thread-2112914-1-1.html
http://bbs.meizu.com/thread-2112914-1-1.html
http://bbs.meizu.com/thread-2112914-1-1.html
http://bbs.meizu.com/thread-2112914-1-1.html
http://bbs.meizu.com/thread-2187060-1-1.html
http://bbs.meizu.com/thread-2187188-1-1.html
http://bbs.meizu.com/thread-2186292-1-1.html
http://bbs.meizu.com/thread-2185762-1-1.html
http://bbs.meizu.com/thread-2181568-1-1.html
http://bbs.meizu.com/thread-2181027-1-1.html
http://bbs.meizu.com/thread-2177253-1-1.html
http://bbs.meizu.com/thread-2173972-1-1.html
http://bbs.meizu.com/thread-2169638-1-1.html
http://bbs.meizu.com/thread-2165544-1-1.html
http://bbs.meizu.com/thread-2164649-1-1.html
http://bbs.meizu.com/thread-2163585-1-1.html
http://bbs.meizu.com/thread-2161817-1-1.html
代码如下:            StreamReader data = new StreamReader("text.txt");         
            int i = 0;
            DataGridViewRowCollection aa = dataGridView1.Rows;
            string[] row ={"",""};
            while(data.Read ()>0) 
            {
                
                row[0] = i.ToString();
                row[1] = data.ReadLine().ToString();
                aa.Add(row);
                i++;
            }
读取后的"http"全部变成"ttp"
试用其他字符(包括中文字符)也是一样,总是每行的第一个字符被莫名其妙的丢失
请问是怎么回事?2、
另外请问如下这个,在C#中是什么控件实现的?

解决方案 »

  1.   

    1.考虑下是否字符编码集不同。记事本打开点另存为看看是什么。你代码中要用一样的Encoding
    2.ListView
      

  2.   

    先谢谢楼上大大。文本文件试过所有的编码。都不行。试着修改“StreamReader”,也没有找到方法,还请大大再指教
      

  3.   

    http://bbs.meizu.com/thread-2112914-1-1.html
    data.Read()后指针知道h后,
    剩下ttp://bbs.meizu.com/thread-2112914-1-1.html
    data.ReadLine() 从ttp读取到换行符
      

  4.   

    你可以用二进制编辑器(vs.net自带的也可以,打开文件,选择打开方式为二进制),看看最后是不是\r没有\n或是只有\n的。ReadLine或许出错了?
    你文件如果能上传到某个地方。或许看一下就明白了。你可以传到csdn下载,或其他地方,这里贴连接。
      

  5.   

    这样写string line = null;
    while((line=data.ReadLine) != null) 
    {
    ...   
    }
      

  6.   

    你已经用data.Read()读取了一个字符了,
    data.ReadLine()读剩下的字符。
      

  7.   

    输入流中的下一行;如果到达了输入流的末尾,则为 null。while(data.readline() != null)
      

  8.   

    你的程序本身有问题,data.Read()已经从文件读取了一个字符,所以造成了每行少一个字符
      

  9.   

    眼尖。
    的确
    一般这么写
    string line = data.ReadLine();
    while(line != null)
    {
        //处理行
        line = data.ReadLine();
    }
      

  10.   

    1. 注意你的Read()方法。把代码改为  StreamReader data = new StreamReader("text.txt");         
                int i = 0;
                DataGridViewRowCollection aa = dataGridView1.Rows;
                string line = data.ReadLine();
                while(line != null)
               {
                    line = data.ReadLine();
                    row[0] = i.ToString();
                    row[1] = data.ReadLine().ToString();
                    aa.Add(row);
                    i++;
              }2.  应该是ListView