请教个dat数据处理及二进制码判断问题,谢谢!

trusttzg 2009-05-08 08:00:58
处理 含有700万行/两列的dat文件,第一列代表时间,第二列是19位的二进制码(每位码代表一个车站)共19个站,这个dat文件代表的是火车在站停靠时间。其中‘1’代表火车在该站停靠,‘0’代表没有车进入该站,将dat文件中摘出一段,比如:

53677.83390041 0010000000000000000
53677.83391201 0010100000000000000
53677.83392361 0010100000000100000
53677.83393521 0010100000000100000
53677.83394671 0010100000000100000
53677.83395831 0010100000000100000
53677.83396991 0010100000000100000
53677.83398141 0010100000000100000
53677.83399301 0010100000000100000
53677.83400461 0010100000000100000
53677.83401621 0010100000000100000
53677.83402771 0010100000000100000
53677.83403931 0010100000000100000
53677.83405091 0010100000000100000
53677.83406251 0010100000000100000
53677.83407401 0010100000000100000
53677.83408561 0010100000000100000
53677.83409721 0010100000000000000
53677.83410881 0010100000000100000
53677.83412031 0010000000000100000
53677.83413191 0010100000000100000
53677.83414351 0010100000000100000
53677.83415511 0010100000000100000
53677.83416661 0010100000000100000
53677.83417821 0010100000000100000
53677.83418981 0010100000000100000
53677.83420141 0010100000000100000
53677.83421291 0010100000000000000
53677.83422451 0010000000000000000



现在问题是:读入dat数据文件,需要输出的是火车进站的时刻、出站时刻、在站内停靠的时间,以及停靠的站名。例如,在上表中二进制码第三列(即第三个车站)自始至终都为‘1’,那么需要程序输出“53677.83390041”、“53677.83414351”、“0.00024310”、“3”。
要实现这个功能,程序代码该怎么写呢?
...全文
121 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
trusttzg 2009-05-09
  • 打赏
  • 举报
回复
自己再顶下
tangshuiling 2009-05-09
  • 打赏
  • 举报
回复
表达的一团糟,不知所云!
如果是海量数据问题,建议直接以数据库的方式组织数值而不是什么文件方式,700万行的文件格式数据
无论是什么算法都不可能高效到什么地步!
唯有在记录数据的初期阶段进行有规则的划分才不至于一个文件有700万行的数据
huasonl88 2009-05-09
  • 打赏
  • 举报
回复
真希望我是高手~
linfengc 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 trusttzg 的回复:]
刚没说清楚,不好意思,这个问题实际上可以归结为两点:1是二进制码判断;2是海量数据问题(因为有700万行数据)
在给出的那个示例表里按照要求应该输出:
53677.83390041 53677.83422451 0.00024310 3
53677.83391201 53677.83409721 差值 5
53677.83413191 53677.83421291 差值 5
53677.83392361 53677.83408561 差值 14
53677.83410881 53677.83420141 差值 14
上面的"…
[/Quote]

还是看不懂。。。53677.83390041代表的是什么时间(怎么和秒对应?(53677.83391201 53677.83409721 差值 5 是怎么计算的?))?这个dat文件是几个 火车 的靠站时间?怎么区分各个火车?
linfengc 2009-05-09
  • 打赏
  • 举报
回复
1. 2进制码判断,easy吧,读出后存到bitset中,然后很容易判断 站
2.算不上海量数据处理吧,才700万,全部放在内存中一点问题都没有
trusttzg 2009-05-09
  • 打赏
  • 举报
回复
自己再顶下
trusttzg 2009-05-08
  • 打赏
  • 举报
回复
呼唤高手啊!!!
aaaa3105563 2009-05-08
  • 打赏
  • 举报
回复
帮顶···
trusttzg 2009-05-08
  • 打赏
  • 举报
回复
刚没说清楚,不好意思,这个问题实际上可以归结为两点:1是二进制码判断;2是海量数据问题(因为有700万行数据)
在给出的那个示例表里按照要求应该输出:
53677.83390041 53677.83422451 0.00024310 3
53677.83391201 53677.83409721 差值 5
53677.83413191 53677.83421291 差值 5
53677.83392361 53677.83408561 差值 14
53677.83410881 53677.83420141 差值 14
上面的"差值"是前面两个数据的差值,代表的是火车在该站停靠的时间。
mengde007 2009-05-08
  • 打赏
  • 举报
回复
什么意思;看了半天还是不明白;
infsafe 2009-05-08
  • 打赏
  • 举报
回复
帮顶。
liliangbao 2009-05-08
  • 打赏
  • 举报
回复
帮顶!!!

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧