社区
C++ Builder
帖子详情
使用标准C/C++,帮我文件比较的算法。散200分
痞子酷
2007-04-27 03:59:17
使用标准C/C++,帮我文件比较的算法,
具体要求如下:
1、2个目录下的文件很多,但格式相同。
2、文件格式取特定字段支持配置,
3、支持分割符和定长字段。
比较出的的文件分为4类型
1、目录1比目录2多的记录,输出一个文件
2、目录2比目录1多的记录,输出一个文件
3、目录1和2关键字相同的记录,但其他字段不相同的字段,输出一个文件
4、目录1和2,所有字段相同,输出一个文件
...全文
321
22
打赏
收藏
使用标准C/C++,帮我文件比较的算法。散200分
使用标准C/C++,帮我文件比较的算法, 具体要求如下: 1、2个目录下的文件很多,但格式相同。 2、文件格式取特定字段支持配置, 3、支持分割符和定长字段。 比较出的的文件分为4类型 1、目录1比目录2多的记录,输出一个文件 2、目录2比目录1多的记录,输出一个文件 3、目录1和2关键字相同的记录,但其他字段不相同的字段,输出一个文件 4、目录1和2,所有字段相同,输出一个文件
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jinming868
2007-10-23
打赏
举报
回复
关注中
xiaoyuezhong
2007-06-22
打赏
举报
回复
在Baidu 搜到了此贴,关注一下.
wuyanchao
2007-04-29
打赏
举报
回复
mark
痞子酷
2007-04-28
打赏
举报
回复
分析数据和比较数据,采集标准的C/C++,以后移植方便,写的代码一般在unix跑,win调试。
痞子酷
2007-04-28
打赏
举报
回复
开发程序,一般不考虑内存问题,如果内存在1。5G以下,不考虑使用内存情况。
痞子酷
2007-04-28
打赏
举报
回复
目前想法:
1、不使用数据库。
2、按关键字段生成临时文件,这些文件话单量比较小,一般不会超过100W。
3、取关键字段生成临时文排序,进行双指针比较,直接分析处理数据
3.1、100W的数据比较大,排序速度慢,采用关键字哈列重新分组排序,速度提供N倍
3.2、比较分析记录,输入文件
4、OK
constantine
2007-04-28
打赏
举报
回复
这么大是不行了,load比较慢,而且站内存
3000W行估计记事本都很多M了吧,直接一行一行读吧。再快是否做文件映射呢?
constantine
2007-04-28
打赏
举报
回复
用函数一行一行读也可以,写string的解析,然后比较也行,不过我觉得没有用tstringlist来的简单。但是如果文件都很大用tstringlist就不大好。
如果是delphi中,做这种东西用他的带格式的文本是很容易处理的
key1!key2!field1!...!fieldN 这样一条记录,定义一个结构体就行了。
里面没一个都是结构体的字段。保存的时候连!都不用了,读写都是带有结构的,简单多了。跟数据库差不多。
痞子酷
2007-04-28
打赏
举报
回复
记录数是非常大,一般在100W以上,一天大概3000W左右
痞子酷
2007-04-28
打赏
举报
回复
记录数是非常大,一般在100W以上
过客猫2022
2007-04-28
打赏
举报
回复
ding!
constantine
2007-04-28
打赏
举报
回复
如果文件不是特别大用Tstringlist还是比较好实现的。
遍历目录X,记录所有文件名字,保存到一个Tstringlist *x中;
遍历目录Y,记录所有文件名字,保存到一个Tstringlist *y中;
for,判断x中的记录是否在y中,有的保存到一个Tstringlist *xt(相同的文件)中;没有的保存到Tstringlist *xd(x比y多的文件)中
for,判断x中的记录是否在y中, 没有的保存到Tstringlist *yd(y比x多的文件)中,相同的不需要再处理了,上一步做了。
到这里1和2完成,用savetofile就可以保存到文件。xt在下面要用到,yd,xd可以free了。
3和4
load xt中的文件名在x,y目录里面对应的文件到Tstringlist *xtext;Tstringlist *ytext;然后每行都用TStringlist对他进行分割Delimiter='!';然后比较2个key和n个field
这样就可以得到你要的了。
总结,中间就是不断使用Tstringlist。
痞子酷
2007-04-28
打赏
举报
回复
大家不要写代码,主要描述思路即可。
思路决定出路~!
痞子酷
2007-04-28
打赏
举报
回复
使用标准C/C++,帮我文件比较的算法,
具体要求如下:
1、2个目录下的文件很多,但格式相同。
2、文件格式取特定字段支持配置,
3、支持分割符和定长字段。
比较出的的文件分为4类型
1、目录1比目录2多的记录,输出一个文件
2、目录2比目录1多的记录,输出一个文件
3、目录1和2关键字相同的记录,但其他字段不相同的字段,输出一个文件
4、目录1和2,所有字段相同,输出一个文件
文件格式举例:
目录1文件:A.txt
key1!key2!field1!...!fieldN
key1!key2!field1!...!fieldN
...
key1!key2!field1!...!fieldN
目录2文件:B.txt
key1;key2;field1;...;fieldN
...
key1;key2;field1;...;fieldN
jacknes009
2007-04-28
打赏
举报
回复
学习中
Waiting4you
2007-04-27
打赏
举报
回复
全是星,偶也厚脸皮地往里挤挤):
jacknes009
2007-04-27
打赏
举报
回复
1.2.都比较简单
后面的不知道你说的文件字段是啥意思?
文本文件还是其他呢?
文件字段 是文件名,还是文件数据中的取的些关键字
我不懂电脑
2007-04-27
打赏
举报
回复
google
ccrun.com
2007-04-27
打赏
举报
回复
关注。
constantine
2007-04-27
打赏
举报
回复
1.2.都比较简单
后面的不知道你说的文件字段是啥意思?
文本文件还是其他呢?
加载更多回复(2)
常用
算法
程序集第四版(高清完整版PDF+全部代码)第二部
分
常用
算法
程序集(
C++
语言描述)第四版(徐士良),
文件
超过60M,所以
分
两部
分
,这是第二部
分
。
《数据结构及
算法
经典》源代码.
目录:
单元加
字符
底层编程
效验
算法
数学问题
数据结构
数组
文件
程序
求进制
汉诺塔
硬币情况
逆阵
问题
算法
小写数字转为大写数字
其它
共168个源代码
蓝桥杯重点(C/
C++
)
蓝桥杯重点(C/
C++
)
C/
C++
:C/
C++
在大数据时代的应用,以及C/
C++
程序员未来的发展路线
例如,可以
使用
C/
C++
实现图像的二值化、边缘检测、图像增强等操作。C/
C++
可以
使用
高效的数据结构和
算法
来优化数据库的查询和更新操作,从而提高数据库的性能和吞吐量。需要注意的是,随着软件工程的不断发展和技术的变革,C/
C++
程序员需要不断学习和适应新的技术和方法,才能不断提高自己的竞争力和市场价值。指针操作:指针是C/
C++
中的一大特色,可以指向内存中的任何位置,包括变量、数组、函数等。C/
C++
在大数据时代中的应用非常广泛,可以支持各种数据处理、数据库、图像处理、计算机视觉、机器学习和人工智能等任务。
C/
C++
学习路线概述
根据如下视频和文章总结: 想做C语言/
C++
开发?这些才是你该学的东西!C语言/
C++
直通企业级开发的详细学习路线 节选:肝了半个月,我整理出了这篇嵌入式开发学习学习路线+知识点梳理 目录1 C/
C++
学习概述1.1 C/
C++
的共性基础1.2 C语言特有部
分
1.3
C++
的特有部
分
2 C/
C++
编程学习四大件2.1 数据结构和
算法
2.2 操作系统2.3 计算机网络2.3.1 计算机网络
分
层2.3.2 典型协议(以TCP/IP四层模型举例)2.4 设计模式 1 C/
C++
学习概述 需要明确的一点是,凡事都
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章