c# 解析txt 统计

简介:
问题描述:
abc表示该行描述的是一个产品,10/11代表产品编号,2表示产品数量 
aa表示该行是对产品的描述信息(产品良好或不良),10/11来自abc编号,1表示产品数量 
产品实体类product,有如下字段:
id,name,count(数量),remarks,goodproductNo(良品数量),badproductNo(次品数量) 
问题是:如何用程序来分别统计编号为10,11的产品到底有多少良品,多少不良品,然后赋 
值给实体类product, 

 * aaa.txt *
abc|10|测a试1|2|备注| 
abc|11|测a试2|3|备注| 
aa|10|1|良好商品·| 
aa|10|1|良好商品·| 
aa|11|1|不良商品·| 
aa|11|1|良好商品·| 
aa|11|1|良好商品·| 

 

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] temp = System.IO.File.ReadAllLines("E:\\aaa.txt", System.Text.Encoding.GetEncoding("gb2312"));
            Dictionary<int, product> dic = new Dictionary<int, product>();
            foreach (string s in temp)
            {
                if (s.StartsWith("abc"))
                {
                    string[] pInfo = s.Split('|');
                    int id = int.Parse(pInfo[1]);
                    if (!dic.ContainsKey(id))
                    {
                        product p = new product();
                        p.Id = id;
                        p.Name = pInfo[2];
                        p.Count = int.Parse(pInfo[3]);
                        p.Remarks = pInfo[4];
                        dic.Add(id, p);
                    }
                }
                else if (s.StartsWith("aa"))
                {
                    string[] qInfo = s.Split('|');
                    int id = int.Parse(qInfo[1]);
                    if (dic.ContainsKey(id))
                    {
                        product p = dic[id];
                        int count = int.Parse(qInfo[2]);
                        string quality = qInfo[3];
                        if (quality == "良好商品·")
                            p.GoodProductNo += count;
                        else if (quality == "不良商品·")
                            p.BadProductNo += count;
                    }
                }
            }
            foreach (int i in dic.Keys)
            {
                product p = dic[i];
                Console.WriteLine("Id:{0},name:{1},count:{2},remarks:{3},goodproductNo:{4},badproductNo:{5}", p.Id, p.Name, p.Count, p.Remarks, p.GoodProductNo, p.BadProductNo);

            }

            Console.ReadKey(); //任意键退出
        }
    }
}
 
/*
输出:
Id:10,name:测试1,count:2,remarks:备注,goodproductNo:2,badproductNo:0
Id:11,name:测试2,count:3,remarks:备注,goodproductNo:2,badproductNo:1
*/

 

 

实体类product.cs:

using using using using namespace class product
    private int 0private int 0private int 0private int 0private string nullprivate string nullpublic int get
            return thisset
            thisvaluepublic int get
            return thisset
            thisvaluepublic int get
            return thisset
            thisvaluepublic int get
            return thisset
            thisvaluepublic string get
            return thisset
            thisvaluepublic string get
            return thisset
            thisvalue

}



本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2010/02/03/1662371.html,如需转载请自行联系原作者

相关文章
|
SQL Oracle 关系型数据库
FastAPI数据库系列(一) MySQL数据库操作 一、简介
FastAPI中你可以使用任何关系型数据库,可以通过SQLAlchemy将其轻松的适应于任何的数据库,比如: PostgreSQL MySQL SQLite Oracle Microsoft SQL Server ...
|
XML Java 数据格式
Spring中Bean的作用域与生命周期
Spring中Bean的作用域与生命周期
405 0
|
API 区块链
获取指定网页基础信息【TDK】免费API接口教程
该接口用于从标准网页中提取标题、关键词、描述和图标等信息。支持POST/GET请求,需提供用户ID、KEY及目标网址等参数,可选指定访问节点。返回状态码、信息提示及提取的内容。示例与详细文档见官网。
570 4
|
存储 分布式计算 并行计算
【大数据】计算引擎:Spark核心概念
【大数据】计算引擎:Spark核心概念
1029 0
|
存储 监控 安全
网络安全法中的 ISO 27001 和 CIA
【8月更文挑战第19天】
905 0
|
存储 API Python
PyMuPDF 1.24.4 中文文档(九)(4)
PyMuPDF 1.24.4 中文文档(九)
347 0
|
存储 负载均衡 API
部署大模型API的实战教程
部署大模型API的实战教程可以分为以下步骤:
|
Java 测试技术
SpringCloud Gateway 测试问题解决
本文针对于测试环境SpringCloud Gateway问题解决。 1.背景介绍 本文遇到的问题都是在测试环境真正遇到的问题,不一定试用于所有人,仅做一次记录,便于遇到同样问题的干掉这些问题。 使用版本:SpringCloud 2.0.0.RELEASE 1.1 Gateway配置 之前系统是由阿里云SLB直接分发到几台生产服务器,但是经过研究,决定在中间加一层网关,也就是阿里云SLB分发流量到Gateway到下游服务。
3005 0
|
机器学习/深度学习
YOLOv5改进 | Conv篇 | 利用轻量化PartialConv提出一种全新的结构CSPPC (参数量下降约42W)
YOLOv5改进 | Conv篇 | 利用轻量化PartialConv提出一种全新的结构CSPPC (参数量下降约42W)
797 4

热门文章

最新文章