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

C#编程问题:求助

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

大家帮帮忙 --------------------编程问答-------------------- 不会是作业题吧?

这个还是比较好分析的

简单的用字符串分析,判断':'的位置,然后分别拷贝

或者用正则表达式 --------------------编程问答--------------------

            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));
            }
--------------------编程问答--------------------

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楼的代码加注释重发一遍呵呵:

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 楼 yalan 的回复:
马上升双星了,心情好,给楼主一个完整的文件哈哈


我3楼的代码加注释重发一遍呵呵:
C# code

using System;
using System.Text;
using System.Collections.Generic;
using System.Collections;
using System.IO;
class test
{
    static void Mai……

 恭喜yalan! --------------------编程问答--------------------

            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]);
            }
--------------------编程问答-------------------- 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]+"右边数据");
            }



--------------------编程问答-------------------- 代码很齐全了 --------------------编程问答-------------------- --------------------编程问答-------------------- 恩,取的方法都有了,
不过我建议 取出来后 分别放入 键值对 中,这样方便之后的 操作。

不过要在编号是唯一的前提下

不建议 数组 ro[i] 和 uo[i] --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 散分了啊,赶紧到未结帖子区抢分吧呵呵
http://topic.csdn.net/u/20110323/14/6f5cce20-4d7e-45f8-a932-af5df9e1c3f5.html?87729 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 3 楼 yalan 的回复:
C# code

using System;
using System.Text;
using System.Collections.Generic;
using System.Collections;
using System.IO;
class test
{
    static void Main()
    {
        StreamReader sr=new StreamRea……

如果要通过弹出对话框选择这样格式txt,进行读入,而不是在程序指定某个文件,又将如何实现呢? --------------------编程问答-------------------- 放个 upload 控件, 隐藏,并触发 。。。。。 --------------------编程问答--------------------
引用 16 楼 cainiao1956 的回复:
如果要通过弹出对话框选择这样格式txt,进行读入,而不是在程序指定某个文件,又将如何实现呢?


步骤:
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    阿狗
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,