苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3638|回复: 6

[其他] winfrom读取txt文件,逐行读取不完整求方案

[复制链接]
发表于 2017-11-4 13:24:27 | 显示全部楼层 |阅读模式
读取 txt 文件内容,内容格式如下

标题|<title>|</title>
内容|<content>|</content>
标题|<title>|</title>
内容|<div class="main-text">|</div>


当读到最后 "内容|<div class="main-text">|</div>" 这行内容的时候自动分成了两行, 而前面的 内容|<content>|</content> 读取正常


QQ截图20171104125853.png
使用 StreamReader 读的也是一样
QQ截图20171104132238.png

读取行代码段====================================
[C#] 纯文本查看 复制代码
string[] str = File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory + "\\Regex.txt", Encoding.Default);
                if (str.Length > 0)
                {
                    for (int i = 0; i < str.Length; i++)
                    {
                        string temStr = str[i];
                        if (temStr.Contains("|"))
                        {
                            string[] strStr = temStr.Split('|');
                            ListViewItem item = new ListViewItem(strStr[0]);
                            item.SubItems.Add(strStr[1]);
                            item.SubItems.Add(strStr[2]);
                            lvRegexList.Items.Add(item);
                        }
                    }
                }


下面是保存的代码 =================================

[C#] 纯文本查看 复制代码
FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "\\Regex.txt", FileMode.Create);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);

for (int i = 0; i < lvRegexList.Items.Count; i++)
{
string rTag = lvRegexList.Items[i].SubItems[0].Text;
string rFrist = lvRegexList.Items[i].SubItems[1].Text;
string rTial = lvRegexList.Items[i].SubItems[2].Text;
//File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory+"\\Regex.txt",rTag+"|"+rFrist+"|"+rTial+"\r\n",Encoding.Default);
//File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "\\Regex.txt", rTag + "|" + rFrist + "|" + rTial + "\r\n", Encoding.Default);
sw.WriteLine(rTag + "|" + rFrist + "|" + rTial);
}
sw.Close();
fs.Close();



QQ图片20171104125300.png


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-11-6 08:15:47 | 显示全部楼层
html的全部内容贴出来看一下,没有太明白你的意思是不是说
标题|<title>|</title>
内容|<div class="main-text">|</div>
这部分读不到?
 楼主| 发表于 2017-11-6 09:02:08 | 显示全部楼层
站长苏飞 发表于 2017-11-6 08:15
html的全部内容贴出来看一下,没有太明白你的意思是不是说
标题||
内容||

标题|<title>|</title>
内容|<div class="main-text">|</div>

上面这串字符为txt的内容,读取数据的时候  读到下面内容 【|</div>】 这一块的时候自动分了一行,本来是两行数据的,变成了三行,

而这段 【内容|<div class="main-text">|</div>】
如果只有像【内容|<content>|<content>】 这么长就不会自动分行,
发表于 2017-11-6 09:12:02 | 显示全部楼层
你直接把你的内容全部贴出来,或者有问题的一部分贴出来,然后说一下那里能取到,那里取不到,安你说的我获取都正常。

内容如果保密的话就替换一下,要先把自己的问题能清楚,让别人能看明白,能测试,才能提高给你解决问题的效率
 楼主| 发表于 2017-11-6 09:22:37 | 显示全部楼层
站长苏飞 发表于 2017-11-6 09:12
你直接把你的内容全部贴出来,或者有问题的一部分贴出来,然后说一下那里能取到,那里取不到,安你说的我获 ...

哥,没啥保密的啊,我生成的数据就是两行。这样的,  
 楼主| 发表于 2017-11-6 09:36:30 | 显示全部楼层
就如这图一样,数据量一多就这样的,本来所有内容都是一行行的,

 楼主| 发表于 2017-11-6 15:46:54 | 显示全部楼层
  终于搞好了,原来是填数据的时候有空格, 保存数据加上 Trim() 就不会有错了,非常感谢
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 03:36

© 2014-2021

快速回复 返回顶部 返回列表