| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1735 人关注过本帖
标题:提取文本文件内容
只看楼主 加入收藏
lzydcx
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-6-24
收藏
 问题点数:0 回复次数:13 
提取文本文件内容
如何提取“=”后面的内容



&L
WK_PRDNO=5073800123
WK_NAME=张三                     
正常=               0.00
逾期=              12.21
正常利息=               0.00
罚息=               0.04
复利=               0.11
&L
WK_PRDNO=5073800123
WK_NAME=李四                     
正常=               0.00
逾期=              12.21
正常利息=               0.00
罚息=               0.04
复利=               0.11
&L
搜索更多相关主题的帖子: 文本文件 
2008-06-24 16:10
lzydcx
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-6-24
收藏
得分:0 
很急呀,请大虾们帮帮忙!!! 谢谢了!!!
很急呀,请大虾们帮帮忙!!! 谢谢了!!!
2008-06-24 16:22
slokra
Rank: 1
等 级:新手上路
帖 子:35
专家分:2
注 册:2008-6-18
收藏
得分:0 
逐行读取数据,然后用split('=')分开
2008-06-24 16:31
lzydcx
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-6-24
收藏
得分:0 
能给出具体代码吗?
要求把每行具有相同属性的内容存到一个文件里,如每行WK_NAME的内容

张三
李四
2008-06-24 16:44
slokra
Rank: 1
等 级:新手上路
帖 子:35
专家分:2
注 册:2008-6-18
收藏
得分:0 
可以将读取到的内容用split()处理后添加到NameValueCollection中。

例:
            NameValueCollection myCol = new NameValueCollection();
            myCol.Add("WK_NAME", "张三");
            myCol.Add("WK_NAME", "李四");
            Console.WriteLine(myCol["WK_NAME"]);

运行结果为:张三,李四
2008-06-24 17:04
slokra
Rank: 1
等 级:新手上路
帖 子:35
专家分:2
注 册:2008-6-18
收藏
得分:0 
public static void Main()
        {
            FileStream fs = null;
            NameValueCollection dataCol = new NameValueCollection();
            string sourceFile = @"C:\data.txt";

            if (!File.Exists(sourceFile))
            {
                Console.WriteLine("Source File Not Found!");
                Console.ReadLine();
                return;
            }

            //Opens the source file.
            fs = new FileStream(sourceFile, FileMode.Open);
            StreamReader sr = new StreamReader(fs, Encoding.Default);
            string line;

            //A value is read from the file.
            while (sr.Peek() > -1)
            {
                line = sr.ReadLine();
                if (line.Contains('='))
                {
                    string[] data = line.Split('=');
                    dataCol.Add(data[0].Trim(), data[1].Trim());
                }
            }

            sr.Close();
            fs.Close();

            //create a new txt file for each property
            foreach (string key in dataCol.AllKeys)
            {
                //check directory
                if (!Directory.Exists(@"C:\test"))
                    Directory.CreateDirectory(@"C:\test");

                //open the new file, if not exists, create it
                StreamWriter newFile = File.AppendText(string.Format(@"C:\test\{0}.txt", key));

                //get all value with the same property
                string[] keyValue = dataCol[key].Split(',');

                //write values to the file
                foreach (string value in keyValue)
                    newFile.WriteLine(value);

                newFile.Close();
            }

        }

[[it] 本帖最后由 slokra 于 2008-6-25 09:59 编辑 [/it]]
2008-06-25 09:50
雪雨星风
Rank: 1
来 自:北京
等 级:新手上路
威 望:1
帖 子:566
专家分:0
注 册:2007-10-11
收藏
得分:0 
可以转换成中文注释吗

C#发烧友QQ群1:5953354   QQ群2:68096127  QQ群3:30217249  QQ群4:37023079   为了更好方便大家交流学习,请不要重复加群
2008-06-25 11:49
lzydcx
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-6-24
收藏
得分:0 
编译报错
if (line.Contains('='))
                {
                    string[] data = line.Split('=');


报错信息


 error CS0117: “string”并不包含对“Contains”的定义
2008-06-25 14:17
slokra
Rank: 1
等 级:新手上路
帖 子:35
专家分:2
注 册:2008-6-18
收藏
得分:0 
你的.net是哪个版本的?
string.Contains()是2.0新增的
2008-06-25 14:37
tomtory
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:705
专家分:0
注 册:2008-6-12
收藏
得分:0 
string.Split('=')
这个可以噻
2008-06-25 17:56
快速回复:提取文本文件内容
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028773 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved