获取csv某一列

yskshift 2014-11-27 10:11:44
如题,我想获取csv文件中某几列的数据,csv文件大概10000行,200列,目前用的方法是一行一行的读取并且找到对应元素所在位置然后获取之,但是这种办法很慢,请问有没有比较快速的办法
...全文
1099 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yskshift 2014-11-28
  • 打赏
  • 举报
回复
谢谢各位,结贴给分、、
fly_dragon_fly 2014-11-27
  • 打赏
  • 举报
回复
感觉也不大,分配一块内存,一次全读入好了
starytx 2014-11-27
  • 打赏
  • 举报
回复
貌似只有逐行读取了,可以读到一个vector<vector<string>>里,然后循环外层vector,取内层vector的某几个元素。
yskshift 2014-11-27
  • 打赏
  • 举报
回复
ps cvs文件每一行总长度都不一样
赵4老师 2014-11-27
  • 打赏
  • 举报
回复
还可以用bcp工具将其导入SQL Server数据库。
勤奋的小游侠 2014-11-27
  • 打赏
  • 举报
回复
引用 4 楼 yskshift 的回复:
[quote=引用 3 楼 fly_dragon_fly 的回复:] 感觉也不大,分配一块内存,一次全读入好了
我用fread一次性全部读入, 主要是每一行找我想要的数据这个循环非常花时间! [/quote] 你定义一个数据结构,将文件一次性放入这个数据结构。 然后下次访问就可以随机访问这个数据结构了。 这个数据结构可以是数组,也可以是vector.应该不难实现
赵4老师 2014-11-27
  • 打赏
  • 举报
回复
在文件大小相同的前提下: 读刚读过的文件比头次读没读过的文件快 读转速快的硬盘上的文件比读转速慢的硬盘上的文件快 读没有磁盘碎片的文件比读有磁盘碎片的文件快 读文件不处理比边读边处理快 单线程从头到尾一次读文件比多线程分别读文件各部分快(非固态硬盘上) 读固态硬盘上的文件比读普通硬盘上的文件快 您是否希望迅速对您频繁使用的文件进行碎片整理?使用 Contig 优化单个的文件,或者创建连续的新文件。http://technet.microsoft.com/zh-cn/sysinternals/bb897428
yskshift 2014-11-27
  • 打赏
  • 举报
回复
引用 3 楼 fly_dragon_fly 的回复:
感觉也不大,分配一块内存,一次全读入好了
我用fread一次性全部读入, 主要是每一行找我想要的数据这个循环非常花时间!

64,662

社区成员

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

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