0

我正在尝试开发一种可以将数据连续存储到日志文件中的软件工具。数据重复,我想删除所有重复的行并存储到日志文件中。我浏览了几个论坛并找到了解决方案,但这不是我要寻找的。这是我的情况:

FM 广播电台在广告时段播放标准消息,比如说“Soft Rock KWAV 96.9FM”一段时间,几分钟后他们播放一首带有标题或艺术家姓名等的歌曲。我可以将所有信息存储到我的日志中没有重复行的文件。我的问题是,当歌曲完成后,又有 10 分钟的广告插播,此时我当前的日志文件已经包含消息(“Soft Rock KWAV 96.9 FM”),所以它不允许第二个重复的消息进入文本文件。如果我运行我的软件并在一天结束时查看日志文件,将只有一个商业中断,这是不正确的。

任何建议/想法将不胜感激。

输入数据:

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,软

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,摇滚

2013 年 2 月 15 日,09:12,KWAV

2013 年 2 月 15 日,09:12,KWAV

2013 年 2 月 15 日,09:12,KWAV

2013 年 2 月 15 日,09:12,KWAV

2013 年 2 月 15 日,09:12,KWAV

2013 年 2 月 15 日,09:12,KWAV

02/15/2013, 09:12, 96.9 FM

02/15/2013, 09:12, 96.9 FM

02/15/2013, 09:12, 96.9 FM

02/15/2013, 09:12, 96.9 FM

02/15/2013, 09:12, 96.9 FM

02/15/2013, 09:12, 96.9 FM

2013 年 2 月 15 日,09:13,软

2013 年 2 月 15 日,09:13,软

2013 年 2 月 15 日,09:13,软

2013 年 2 月 15 日,09:13,软

然后下一首歌曲/标题/艺术家姓名等等......

4

1 回答 1

0

http://msdn.microsoft.com/en-us/library/vstudio/ezwyzy7b.aspx

http://msdn.microsoft.com/en-us/library/vstudio/8bh11f1k.aspx

我会结合使用这两个帖子。

// load a StreamReader to the old path
using (StreamReader sr = new StreamReader(oldPath)) 
{
    // load a StreamWriter to the new path
    using (StreamWriter sw = new StreamWriter(newPath)) 
    {
        string lastLine = string.empty();
        while (sr.Peek() >= 0) 
        {
            var line = sr.ReadLine();

            // if the line's text is different from the previous, write it
            if (line != lastLine)
            {            
                sw.WriteLine(line);
                lastLine = line
            }
        }
    }
}

这假设您只想过滤掉连续的行,并且您将定期运行它。免责声明:我实际上并没有运行此代码。

于 2013-02-15T21:31:56.210 回答