NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

如何存储大量数据至csv文件

使用VISA read读取,一天大概100万个点,一次实验可能要二十几天。现在是以数组的形式先将数据存在while的循环的寄存器里,然后等结束实验时再用写入电子表格存成csv格式的文件。测试了几次,会出现内存溢出的情况,请问这是不是labview寄存器里的数组太大造成的?还有就是用Excel打开csv文件,一次只能显示100多万行,请问有没有什么好的方法解决这个问题,最好是能存成csv文件,然后每存100万行换一列,这样就能存很多天的数据了

0 项奖励
1 条消息(共 8 条)
5,800 次查看

我们做测试时, 一般都是边采样, 边存数据的. 以防程序crash, 或是 Windows crash.

存多个.csv文件, 免得文件变得太大.

 

George Zou
0 项奖励
2 条消息(共 8 条)
5,773 次查看

你们是怎么实现存多个csv文件的?是用写入电子表格,每采一个点写一个,然后设置一个阈值,例如100万,每采够100万个点就用移动文件函数把当前的CSV文件移动并重命名吗?

0 项奖励
3 条消息(共 8 条)
5,768 次查看

每采一个点写一个

没用Queue吗?

 

>然后设置一个阈值,例如100万,每采够100万个点就用移动文件函数把当前的CSV文件移动并重命名吗?

Create new file.

 

George Zou
0 项奖励
4 条消息(共 8 条)
5,760 次查看

您好,你需要的功能楼上已经提供了很好的解决思路的了。

 

实际上使用“写入带分隔符电子表格”这个vi就很容易实现这个功能。

 

可以在电脑内存里面用一个数组来存一定量的数据点(简单的实现方式就是把写入缓存操作扔循环里面),然后打开这个csv将数据存到第一列,然后将内存里面缓存的数据清掉,再重新存,存够了再写到第二列。

 

就是单纯的文件I/O操作而已,还是挺容易的,而且“写入带分隔符电子表格”这个vi写csv还是挺便捷的。

 

你也可以将不同天的写到不同的文件里面,这样就不会那么占用电脑内存了。因为你写到第20天以后,每一次将数据写进去实际上都要先在后台打开这个文件,所以可能会很消耗系统资源的。

 

希望能帮到您!

微信截图_20171222112409.png

0 项奖励
5 条消息(共 8 条)
5,726 次查看

谢谢你的帮助,已经解决了,最终是采用一天一个文件的方式解决的;关于存第二列的问题想不通就没用了。。。

0 项奖励
6 条消息(共 8 条)
5,716 次查看

你可以下载VI Package包里面的RotateLog工具包,循环存储。自动创建新文件。

0 项奖励
7 条消息(共 8 条)
5,601 次查看

下载了,也安装了RotateLog工具包,但是不会怎么用啊?函数在哪里也找不到,求详细讲解,下次用的时候方便一点!!!

0 项奖励
8 条消息(共 8 条)
5,589 次查看