C#txt文档 数据读取和修改

匿名9999匿名9999匿名9999匿名9999名字和数字之间用空格隔开,现在要将这8个数据分别赋值到8个label控件中,进行比较后,返回txt文档,并替换原数据,做一... 匿名 9999
匿名 9999
匿名 9999
匿名 9999
名字和数字之间用空格隔开,现在要将这8个数据分别赋值到8个label控件中,进行比较后,返回txt文档,并替换原数据,做一个排行榜的功能.
求读取txt文档和赋值label控件的C# 代码。
一共有4个难度,每个难度只保留一个最大值,功能类似于扫雷的排行榜
展开
 我来答
Damon_lan
2015-06-01 · TA获得超过2054个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:182万
展开全部

楼主请看,

  1. 准备文件内容


  2. Code,我的思路很简单,就是刚开始先加载数据到label,然后在排序,在输出结果。。


    //定义一个全局的变量。。。存储读取的内容
            Dictionary<string, int> dics = new Dictionary<string, int>();
            private void button1_Click(object sender, EventArgs e)
            {
                using (FileStream fs = new FileStream("TextFile1.txt", FileMode.Open))
                {
                    using (StreamReader sr = new StreamReader(fs))
                    {
                        int lblCount = 1;
                        while (!sr.EndOfStream)
                        {
                            string[] line = sr.ReadLine().Split(' ');
                            dics.Add(line[0], Convert.ToInt32(line[1]));
                            SetLabelByID("label" + lblCount, line[0]);
                            lblCount++;
                            SetLabelByID("label" + lblCount, line[1]);
                            lblCount++;
                        }
                    }
                    fs.Close();
                }
            }
            
            private void button2_Click(object sender, EventArgs e)
            {
                //进行排序。。
                var sortDics = from n in dics
                               orderby n.Value descending
                               select n;

                int lblCount2 = 1;
                foreach (var item in sortDics)
                {
                    SetLabelByID("label" + lblCount2, item.Key);
                    lblCount2++;
                    SetLabelByID("label" + lblCount2, item.Value.ToString());
                    lblCount2++;
                }
            }
            //通过找到ID,然后对label进行赋值。。
            public void SetLabelByID(string strID, string val)
            {
                Label lbl = null;
                foreach (Control c in this.Controls)
                {
                    if (c.Name == strID)
                    {
                        lbl = (Label)c;
                        lbl.Text = val;
                    }
                }
            }
  3. 结果

    界面是这样子的:


    点击“加载数据”


    点击“开始排序”


    你看,我没有骗你,可以看到现在按照数据从大到下排序了。。

  4. 不知道是不是楼下需要的结果。。有问题 可以在进行沟通。祝你好运!

    这里需要注意的是,你的label的命名规则一定要有规则才行!~~因为只有这样才能进行动态的赋值。。当然还有一种方法,是通过反射进行赋值,也是OK的。

    加油!!

追问
饿,不好意思,是我问题写的不够清楚。我这个游戏是有4个难度的,每个难度只记录一个最高分,跟扫雷的排行榜有点差不多,可以的话,能加个QQ谈么。
你猜我猜哇擦猜
2015-06-01 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2万
采纳率:0%
帮助的人:6760万
展开全部
List<string> listLines = new List<string>();
using(StreamReader reader = new StreamReader ("your text file's path"))
{
    int i = 1;
    string line = reader.ReadLine();
    while(line!="" && line != nul)
    {
        if(i>=3)
        {
            listLines.Add(line);
        }
        line = reader.ReaderLine();
    }
    //循环完后,listLines 里面就放有第三行到第十行的数据了
}
for(int i = 0; i< listLines.Count ; i++)
{
    //listLines[i] 你想怎么处理就怎么处理咯
}
追问
我一共就4行数据啊,哪来第三行到第十行,麻烦给一段完整的代码好么。最好能把label的赋值代码写下
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式