C#编程问题:
想将下面txt格式文件的冒号左边的读入数组ro[i]中,冒号右边的读入数组uo[i]中。最好给出源代码。谢谢啦!!!
2001:张三
2045:李四
7130:李五
0130:李流
7131:李启
0802:李八
0343:王五
0744:冯小明
0304:刘德华
0716:张学友
0047:阿毛
0449:阿狗大家帮帮忙

解决方案 »

  1.   


                System.IO.StreamReader reader = new System.IO.StreamReader("c:\\1.txt",Encoding.Default);
                while (!reader.EndOfStream)
                {
                    string s = reader.ReadLine();
                    int i = s.IndexOf(':');
                 //下面提出的文字放到数组
                    MessageBox.Show(s.Substring(0,i));
                    MessageBox.Show(s.Substring(i+1,s.Length-i-1));
                }
      

  2.   


    using System;
    using System.Text;
    using System.Collections.Generic;
    using System.Collections;
    using System.IO;
    class test
    {
    static void Main()
    {
    StreamReader sr=new StreamReader(@"c:\1.txt",Encoding.Default);
    ArrayList ro=new ArrayList();
    ArrayList uo=new ArrayList();
    while(sr.Peek()>0)
    {
    string[] s=sr.ReadLine().Split(':');
    ro.Add(s[0]);
    uo.Add(s[1]);
    }
    for(int j=0;j<ro.Count;j++)
    {
    Console.WriteLine(ro[j]+"      "+uo[j]);
    }
    }
    }
    编译通过
      

  3.   

    马上升双星了,心情好,给楼主一个完整的文件哈哈
    我3楼的代码加注释重发一遍呵呵:using System;
    using System.Text;
    using System.Collections.Generic;
    using System.Collections;
    using System.IO;
    class test
    {
    static void Main()
    {
    //使用StreamReader将文本文件以流的形式读入
    StreamReader sr=new StreamReader(@"c:\1.txt",Encoding.Default);
    List<string> ro=new List<string>(); //定义两个ArrayList型数组,因为ArrayList是可变的,添加元素非常容易。当然用泛型List<string>也很容易,原理一样。我这次改为泛型List了,注意和3楼代码的不同之处
    List<string> uo=new List<string>();
    //下面开始读txt文件,sr.Peek()>0表示:当还没有读到末尾的时候
    while(sr.Peek()>0)
    {
    string[] s=sr.ReadLine().Split(':'); //根据:拆分,按楼主要求将:的两部分读入不同的数组
    ro.Add(s[0]);
    uo.Add(s[1]);
    }
    //遍历数组,打印数组元素
    for(int j=0;j<ro.Count;j++)
    {
    Console.WriteLine(ro[j]+"      "+uo[j]);
    }
    }
    }哈哈双星啊
      

  4.   


                StreamReader sr = new StreamReader(@"c:\1.txt", Encoding.UTF8);
                while (!sr.EndOfStream)
                {
                    string[] s = sr.ReadLine().Split(':');
                    if (s.Length >= 2)
                        Response.Write(s[0]);
                }
      

  5.   

    3楼是可以,但是复杂点了,我看错了应该是这样          StreamReader sr = new StreamReader(@"c:\1.txt", Encoding.UTF8);
                while (!sr.EndOfStream)
                {
                    string[] s = sr.ReadLine().Split(':');
                    if (s.Length >= 2)
                        Response.Write(s[0]+"左边数据...."+s[1]+"右边数据");
                }
      

  6.   

    恩,取的方法都有了,
    不过我建议 取出来后 分别放入 键值对 中,这样方便之后的 操作。不过要在编号是唯一的前提下不建议 数组 ro[i] 和 uo[i]
      

  7.   

    散分了啊,赶紧到未结帖子区抢分吧呵呵
    http://topic.csdn.net/u/20110323/14/6f5cce20-4d7e-45f8-a932-af5df9e1c3f5.html?87729
      

  8.   

    如果要通过弹出对话框选择这样格式txt,进行读入,而不是在程序指定某个文件,又将如何实现呢?
      

  9.   

    放个 upload 控件, 隐藏,并触发 。。
      

  10.   


    步骤:
    1,在窗体上拖一个按钮控件button1,一个富文本框richTextBox1
    2,双击button1进入代码,添加命名空间:
       using System.IO;   //默认不包含该命名空间
       在自动生成的button1_Click事件中填写代码:
            private void button1_Click(object sender, EventArgs e)
            {
                //打开文件对话框
                OpenFileDialog ofd = new OpenFileDialog();
                //Filter属性设置只允许打开txt文件
                ofd.Filter = "文本文件(*.txt)|*.txt";
                //不允许多选
                ofd.Multiselect = false;
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    //使用StreamReader将选择的文本文件以流的形式读入
                    StreamReader sr = new StreamReader(ofd.FileName,Encoding.Default);
                    //定义两个ArrayList型数组,因为ArrayList是可变的,添加元素非常容易。当然用泛型List<string>也很容易,原理一样。我这次改为泛型List了,注意和3楼代码的不同之处
                    List<string> ro = new List<string>();
                    List<string> uo = new List<string>();
                    //下面开始读txt文件,sr.Peek()>0表示:当还没有读到末尾的时候
                    while (sr.Peek() > 0)
                    {
                        string[] s = sr.ReadLine().Split(':');    //根据:拆分,按楼主要求将:的两部分读入不同的数组
                        ro.Add(s[0]);
                        uo.Add(s[1]);
                    }
                    //遍历数组,打印数组元素
                    for (int j = 0; j < ro.Count; j++)
                    {
                        richTextBox1.Text += ro[j]+"    "+uo[j]+"\n"; //末尾打印个换行,看上去更直观
                    }            }
            }
    运行程序,在富文本框richTextBox1中会显示:2001    张三
    2045    李四
    7130    李五
    0130    李流
    7131    李启
    0802    李八
    0343    王五
    0744    冯小明
    0304    刘德华
    0716    张学友
    0047    阿毛
    0449    阿狗