关于读取文本数据整理再生成

问题描述

不是关于计算机专业这一块的,纯纯纯菜鸟,老师想让我把一个txt文本读出来,把里面的数据提取一些有用信息,再整理一下,把整理好的数据生成一个新的txt文本,文本里面能像数据库里面一样,有表头和下面相应的数据。数据整理这一块老师已经把程序给我了,我想读去和生成新的TXT文本但代码完全被我整乱了,也不会改,谁能帮我一下啊,整理整理,看看哪里少了什么,哪里写错了,发一份完整的代码,万分感谢usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.IO;namespacedaoru{classNEDataParseClass{publicstaticStringAlCateNMID="000000";publicstaticStringMacrniNMID="000001";publicstaticStringNECNMID="000002";publicstaticStringECINMID="000003";publicstaticvoidMacrni_Business(stringfileName,refList<TJToplogy.Model.DataBase.BusinessTable>businessInfoList,refList<TJToplogy.Model.DataBase.BusinessPathTable>businessPathList,refstringMsgInfo,refintokCount,refinterrCount,refDictionary<String,TJToplogy.Model.DataBase.virtualPort2realPortTable>MacrnDic){FileStreamaFile=newFileStream(@"F:实验室zwz天津项目11数据整理马可尼dianluxinxi20131116.txt",FileMode.Open);StreamReaders=File.OpenText(fileName);stringread=null;intnLines=0;okCount=0;intnBegin=0;errCount=0;StringBuilderstrBuild=newStringBuilder();TJToplogy.Model.DataBase.BusinessTablebusinessInfoItem=newTJToplogy.Model.DataBase.BusinessTable();businessInfoItem.NMID=MacrniNMID;TJToplogy.Model.DataBase.BusinessPathTablebusinessPathItem=newTJToplogy.Model.DataBase.BusinessPathTable();businessPathItem.NMID=MacrniNMID;businessPathItem.PathDirection="<->";businessPathItem.TrailLabel="";intnState=0;//0:基本信息阶段1:workerRouteing2:Protectionintnpath=0;while((read=s.ReadLine())!=null){nLines++;//分析所在位置if(read.IndexOf(""")>=0){nState=0;}elseif(read.IndexOf("Worker:")>=0){nState=1;}elseif(read.IndexOf("Protection:")>=0){nState=2;}if(read.IndexOf(""")>=0){//businessInfoItem.Descript=strBuild.ToString();//TopologyLinkList.Add(topoItem);//okCount++;businessInfoItem=newTJToplogy.Model.DataBase.BusinessTable();businessInfoItem.NMID=MacrniNMID;strBuild=newStringBuilder();//Stringstr1="*;|@123***456@|;*";//Stringdelim="*;|@";//Stringstr2=str1.Trim(delim.ToCharArray());strBuild.Append(read);//stringch=@"""";read=read.Trim(null);businessInfoItem.BusinessLabel=read.Substring(1,read.Length-2).Trim(null);continue;}strBuild.Append(read);if(read.IndexOf("Type:")==0){stringtem="Type:";stringt2=read.Substring(tem.Length,read.Length-tem.Length).Trim(null);intnpt=t2.IndexOf("");businessInfoItem.PathType=t2.Substring(0,npt);businessInfoItem.ServiceRate=t2.Substring(npt,t2.IndexOf(",")-npt).Trim(null);continue;}if(read.IndexOf("ProtectionType:")>=0){stringtem="ProtectionType:";stringt2=read.Substring(tem.Length,read.Length-tem.Length).Trim(null);intnpt=t2.IndexOf("(");businessInfoItem.Protection=t2.Substring(0,npt);continue;}if(read.IndexOf("Routeing:")>=0){npath=0;businessInfoItem.BusinessMem=strBuild.ToString();businessInfoList.Add(businessInfoItem);okCount++;continue;}if(read.IndexOf("<->")>=0){businessPathItem=newTJToplogy.Model.DataBase.BusinessPathTable();businessPathItem.NMID=MacrniNMID;businessPathItem.PathDirection="<->";businessPathItem.TrailLabel="";businessPathItem.BusinessLabel=businessInfoItem.BusinessLabel;businessPathItem.IsMainRoute=((nState==1)?true:false);businessPathItem.nIndex=npath;npath++;businessPathItem.NEName=read.Substring(0,read.IndexOf(""));Stringtmps=read.Substring(businessPathItem.NEName.Length+1,read.IndexOf("<->")-businessPathItem.NEName.Length-1).Trim();intnl=tmps.LastIndexOf("");intnportindex=tmps.LastIndexOf("PORT");if(nl>nportindex+5){businessPathItem.VC=tmps.Substring(nl+1);businessPathItem.Port=tmps.Substring(0,nl);}else{businessPathItem.VC="";businessPathItem.Port=tmps;}businessPathItem.NEofNMID=MacrniNMID;if(MacrnDic.ContainsKey(businessPathItem.Port)){businessPathItem.NEName=MacrnDic[businessPathItem.Port].realNEName;businessPathItem.NEofNMID=MacrnDic[businessPathItem.Port].realNMID;businessPathItem.Port=MacrnDic[businessPathItem.Port].realPort;}intnAc=read.IndexOf("(revertive)(Active)");if(nAc<0){nAc=read.IndexOf("(Active)");}Stringxt="<->";Stringxsec=read.Substring(read.IndexOf(xt)+xt.Length,nAc-read.IndexOf(xt)-xt.Length);StringsecPort=xsec.Substring(0,xsec.LastIndexOf("")).TrimEnd();//businessPathItem.VC=xsec.Substring(xsec.LastIndexOf("")+1,xsec.Length-xsec.LastIndexOf("")-1);businessPathItem.PathMEM=read;businessPathList.Add(businessPathItem);businessPathItem=newTJToplogy.Model.DataBase.BusinessPathTable();businessPathItem.NMID=MacrniNMID;businessPathItem.PathDirection="<->";businessPathItem.TrailLabel="";businessPathItem.BusinessLabel=businessInfoItem.BusinessLabel;businessPathItem.IsMainRoute=((nState==1)?true:false);businessPathItem.nIndex=npath;npath++;businessPathItem.NEName=read.Substring(0,read.IndexOf(""));//businessPathItem.Port=secPort;nl=secPort.LastIndexOf("");nportindex=secPort.LastIndexOf("PORT");if(nl>nportindex+5){businessPathItem.VC=secPort.Substring(nl+1);businessPathItem.Port=secPort.Substring(0,nl);}else{businessPathItem.VC="";businessPathItem.Port=secPort;}businessPathItem.NEofNMID=MacrniNMID;if(MacrnDic.ContainsKey(businessPathItem.Port)){businessPathItem.NEName=MacrnDic[businessPathItem.Port].realNEName;businessPathItem.NEofNMID=MacrnDic[businessPathItem.Port].realNMID;businessPathItem.Port=MacrnDic[businessPathItem.Port].realPort;}businessPathItem.VC=xsec.Substring(xsec.LastIndexOf("")+1,xsec.Length-xsec.LastIndexOf("")-1);businessPathItem.PathMEM=xsec;businessPathList.Add(businessPathItem);}}staticvoidPrintBussinessInfo(refTJToplogy.Model.DataBase.BusinessTableitm){Console.WriteLine("businessLabel:"+itm.BusinessLabel);Console.WriteLine("ServiceRate:"+itm.ServiceRate);Console.WriteLine("Protection:"+itm.Protection);Console.WriteLine("PathWorkingState:"+itm.PathWorkingState);Console.WriteLine("PathType:"+itm.PathType);Console.WriteLine("Descript:"+itm.BusinessMem);}staticvoidPrintBusinessPath(refTJToplogy.Model.DataBase.BusinessPathTableitm){Console.WriteLine("businessLabel:"+itm.BusinessLabel);Console.WriteLine("nIndex:"+itm.nIndex.ToString());Console.WriteLine("TrailName:"+itm.TrailLabel);Console.WriteLine("IsMainRoute:"+((itm.IsMainRoute==true)?"是":"否"));Console.WriteLine("NEName:"+itm.NEName);Console.WriteLine("PortName:"+itm.Port);Console.WriteLine("VC:"+itm.VC);Console.WriteLine("PathDirection:"+itm.PathDirection);Console.WriteLine("Descript:"+itm.PathMEM);}}}staticvoidMain(string[]args){}

解决方案

解决方案二:
如何读取文本文件中的所有数据以及追加数据问题//读取文本文件数据privatevoidbutton1_Click(objectsender,EventArgse){try{openFileDialog1.Filter="文本文件(*.txt)|*.txt";openFileDialog1.ShowDialog();textBox1.Text=openFileDialog1.FileName;StreamReaderSReader=newStreamReader(textBox1.Text,Encoding.Default);textBox2.Text=SReader.ReadToEnd();}catch{MessageBox.Show("请选择文件");}}//向文本文件写入追加数据privatevoidbutton2_Click(objectsender,EventArgse){if(String.IsNullOrEmpty(textBox1.Text.Trim())){MessageBox.Show("请设置文件");return;}if(String.IsNullOrEmpty(textBox2.Text.Trim())){MessageBox.Show("请输入要写入的文件内容");return;}try{StreamWriterSWriter=newStreamWriter(textBox1.Text);SWriter.Write(textBox2.Text);SWriter.Close();MessageBox.Show("写入文件成功!");}catch(Exceptionex){MessageBox.Show(ex.Message);}}
解决方案三:
你要把前后的数据贴出来,否则别人没法帮
解决方案四:
引用2楼rtdb的回复:

你要把前后的数据贴出来,否则别人没法帮

原数据:有十几条1."!BJ1(16)-CF1(17)BJ-CFIPACS-5931ABH"Type:BidirectionalVC-12,Notpre-emptiveState:ActiveWorkerColours:NoColoursProtectionColours:NoColoursOperationalState:EnabledInService:YesTrailTraceState:UndefinedProtectionType:SNCP(Revertive)ProtectionState:ActiveASTNOperationalState:DisabledCreatedon:Tuesday,August23,201110:00:57AMCreatedby:nmcmanRouteingProperties:PhysicalNodeDiversity:SatisfiedSRLGDiversity:SatisfiedPhysicalLinkDiversity:SatisfiedRouteing:Worker:BeiJiaoBian.BeiJB.1LTU1-132Mb/sPORT16<->Card1-33STM-16PORT11-1-2-3(Active)BeiJB/1-ChenF/11S11-1-2-3ChenFu.ChenF.1LTU1-132Mb/sPORT17<->Card1-21STM-16PORT11-1-2-3(Active)Protection:BeiJiaoBian.BeiJB.1LTU1-132Mb/sPORT16<->Card1-21STM-16PORT11-1-5-1(Active)BeiJB/1-JiXianB/11S11-1-5-1JiXB.JiXianB.1Card1-22STM-16PORT11-1-5-1<->Card1-21STM-16PORT11-1-5-1(Active)BaoDB/1-JiXianB/11S11-1-5-1BaoDB.BaoDB.1Card1-31STM-16PORT11-1-5-1<->Card1-22STM-16PORT11-1-2-3(Active)BaoDB/1-LuTB/11S11-1-2-3LuTB.LuTB.1Card1-22STM-16PORT11-1-2-3<->Card1-21STM-16PORT11-1-2-3(Active)ChenF/1-LuTB/11S11-1-2-3ChenFu.ChenF.1LTU1-132Mb/sPORT17<->Card1-22STM-16PORT11-1-2-3(Active)要改成这个样子的txt格式

时间: 2024-09-24 16:20:16

关于读取文本数据整理再生成的相关文章

OleDb读取文本数据极其郁闷的问题

问题描述 用OleDb读取文本数据到DataTable.绑定到DataGrid数据可以正常显示.用for(inti=0;i<dt.Rows.Count;i++)循环的时候无法显示第一条数据.请问是什么原因?谢谢

python读取文本数据写入到数据库及查询优化

文本数据格式 ip2int函数用于IP地址转化为整数 int2ip函数用于整数转化为IP地址 insert_row函数用于插入数据库记录 from __future__ import print_function import torndb def get_mysql_conn():     return torndb.Connection(         host=mysql["host"] + ":" + mysql["port"],   

C#实现把txt文本数据快速读取到excel中

  这篇文章主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用. 编写代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2

《数据整理实践指南》一第2章 是我的问题还是数据的问题

第2章 是我的问题还是数据的问题 数据整理实践指南 Kevin Fink 假设给你一份未知来源的数据集,如何确定数据是否有用呢? 这种情况并不少见,给了你一份数据集,却无法提供关于数据来源.如何收集.字段含义等方面的诸多信息.事实上,收到这样的数据可能再正常不过了.在很多情况下,收到的数据可能经过了很多人的处理和加工,和收集的原始数据已经差别甚大,确实也没有人知道这些数据是什么含义了.在本章中,我将一步步引导你如何理解数据.验证数据并最终把数据集转换成可用的信息.特别地,我将探讨洞察数据的特殊方

php中文本数据翻页(留言本翻页)

翻页|数据|中文 在mysq中介绍翻页的文章不少,而文本数据表格式的翻页介绍的很少,这里我就简单的说一下翻页 主要介绍以下翻页思想1.留言本的翻页2.文本论坛的翻页 ------------------------留言本的翻页:------------------------------这个在文本数据表中的翻页是最简单的翻页,这样说明一下 golbal file    Data.dat    ---    NOTE FILE USE    user.dat    ---     Forum Fi

纯asp分离FORM数据中的二进制文件和文本数据

二进制|数据 以下源代码为一个文件 <%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''作者:playxp,Email:playxp@sohu.com有问题请与我联系'功能:纯asp分离FORM数据中的二进制文件和文本数据(支持中文).'使用方法:将此文件包含在处理form的asp文件中,使用GetValue(name)来读取表单中各个元素的值.'注意:一定不要

ava cript-JavaScript读取文本某一行

问题描述 JavaScript读取文本某一行 JavaScript读取文本的时候,如何编码读取某一指定行? 解决方案 javascript读取文件用的也就ie的acx scripting.filesystemobject对象和textstream,你看下textstream的使用就知道了 SkipLine或者readall读出所有数据后split下 ASP TextStream 解决方案二: ReadLine从一个文件读取一整行(到换行符但不包括换行符)并返回得到的字符串http://www.c

编码-怎么逐字节的读取文本内容???

问题描述 怎么逐字节的读取文本内容??? 现在想从一个文件里逐字节的读取内容,但是从网上下载的文本和自己输入的文本读取的内容不太一样.说是网上的内容可能会有UNICODE编码的文本,而我们平常处理的都是纯文本?怎么用c++程序写出完整的读取文本内容,不管是什么编码,空格啥的都能读出来??? 解决方案 逐字节是二进制,逐字符才是文本.UNICODE编码的文本也是纯文本的一种. 你可以打开记事本,保存,下拉选择编码. 解决方案二: 从SDCard中读取文本内容 解决方案三: 用fread,读取,用二

c#操作text指定...-c#读取text数据比较其是否在范围内

问题描述 c#读取text数据比较其是否在范围内 读出每行的第n个数值,然后和一个标准值比较,怎么写程序,求大神帮忙 解决方案 这个文本数据有什么特点吗,比如数据之间有空格或者逗号之类的,有的话,你把它读取出来让后放到一个二维数组里,用到哪个取哪个就是了.