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

关于读取固定格式文本文件(数据量大)的问题

现在有一100M数据文件(txt的),里面数据按以下方式排列
[header] '数据表头
value,value,... '较多
[header]     '数据表头
value,value,... 
[header]  
value,value,..
请问如何根据己经有数据表头提取到其相应数据?

另外,如何转将用split方法读取出来的value数组(string的)转成double类型的呢?
--------------------编程问答-------------------- 先导入到数据库里,然后在处理比较容易 --------------------编程问答-------------------- 我不想用数据库,有没有其它办法呢 --------------------编程问答-------------------- 正则表达应该可以吧。 --------------------编程问答-------------------- 正则表达式。
--------------------编程问答-------------------- 数据量比较大,用正则表达式可以吗? --------------------编程问答-------------------- 頂 --------------------编程问答-------------------- 盼高手~~ --------------------编程问答-------------------- 不知问题解决没,我来试试看,呵呵
这里要用到正则表达式,你可以看我的Blog,我把匹配模式写下来给你(用C#的):
using (StreamReader sr = new StreamReader(txtOpenFile.Text, Encoding.GetEncoding("gb2312")))
            {
                while (sr.Peek() >= 0)//文本流检索直到最后
                {
                    string strLine = sr.ReadLine();//逐行读取

                    if (strLine != "")
                    {
                     string strPatternHead = @"\[(?<head>\S*)\]";
                     Regex regexHead = new Regex(strPatternHead);
                     if(regexHead.IsMatch(strLine))
                     {
                          string strHead = regexHead.Match(strLine).Result(@"${Head}");
                         //这里你可以引用你得到的表头字符串了...
                     }
                     string strSplitValue = @",";
                     Regex regexValue = new Regex(strSplitValue);
                     int iValueCount = regexValue.Split(strLine).Length;//被","分割的个数
                     for(i=0;i < iValueCount; i++)
                     {
                        string strValue = regexValue.Split(strLine)[i].ToString();
                        //在这里取得每一个值,然后处理
                     }
              //以下就不用写了,你应该知道了
                     
--------------------编程问答-------------------- mark
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,