lyh_1201 发表于 2009-4-29 08:42:31

求助:关于二进制文件同时存储时间和数值,并被其它开发工具读取

我希望能用二进制文件同时存储数据及其数据对应的时间,应该用簇的方式吧,以这种方式存储后的二进制文件能够用其他的开发工具打开并正确读取吗?

labc 发表于 2009-4-29 09:20:08

本帖最后由 labc 于 2009-4-29 09:28 编辑

直接把数据写到二进制文件里, 只有一种数据类型的时候读出时比较方便, 因为读出时根据每个数据的长度来依次读出; 把时间转换成数字(或几种数据转化成字符串), 应该可以实现你的设想.
可能多个数据类型时不是很好, 请大家看看.

另外一种方法是, 你把数据写到一个文件内, *.txt, *.csv...随便什么格式, 然后再将这个文件转换成二进制文件保存. 这样, 不管是什么开发工具, 增加一步二进制文件到它原来格式的转换.
不足之处是, 速度可能不够快:如果数据量较大, 可能会花很多时间, 如果你只有几k的数据要处理, 可能就没有什么关系了.

Labc

lyh_1201 发表于 2009-4-29 09:31:08

因为数据量很大,速度很快,本来打算用oracle数据库来存储,这样后续的采用其它开发工具的数据处理会方便通用很多,可是后来发现oracle存储速度还是不够快,才打算存成二进制文件。
labc,你提到的时间转换成数字,我不太明白,是说把时间转换成和数据一个数据类型吗?

xuelanghust 发表于 2009-4-29 09:44:19

我也遇到同样的问题。而且我不知道怎样把时间(最好是相对时间,开始采集的时间为零)分离出来,用什么函数比较好啊?谢谢大侠知道下!

labc 发表于 2009-4-29 09:46:49

本帖最后由 labc 于 2009-4-29 09:52 编辑

我刚才试了一下, LV 可以实现二进制写不同类型的数据.
如果你写数据库为二进制文件, 先要做的是把所有的数据转换成二进制数据, 然后再把二进制数据转换成SQL数据里面可以用的字符串, 用Insert写到数据库里.

Labc

xuelanghust 发表于 2009-4-29 09:56:50

我要采集的是一个随着时间的衰减信号,所以时间对我来说也是非常重要的(只需要相对时间),但是我不知道怎么得到采集到得数据的采集时间啊?

labc 发表于 2009-4-29 10:07:43

本帖最后由 labc 于 2009-4-29 10:11 编辑

你采集到的数据有时间信息吗? 有就可以分离出来啊.

Labc

lyh_1201 发表于 2009-4-29 14:49:37

labc,如果向你的例子中所描述的,关键是其他的开发工具如何正确的读出时间和数据呢?

labc 发表于 2009-4-30 09:37:55

有没有其它程序和LV都能读取的格式?
然后向数据库中写那种格式不就可以了吗? 和其他人沟通一下吧.

前面那个图片展示的方法, 可能用其它语言处理比较麻烦, 我甚至觉得把多个簇写到二进制文件里, 用LV依次把它们都出来都挺困难的. 请高手支支招.

我知道不同的编程语言都可以读取二进制的文件. 因此首先把数据都储存成它如前面所说的*.txt, *.csv...随便什么格式, 然后再将这个文件转换成二进制文件保存到服务器中(其实Access也可以), 读出以后增加个转换就好了.

在写入速度和读取的方便性方面都考虑考虑.

Labc

3no 发表于 2009-4-30 09:54:54

我还是建议用数据库,写文件这种方式,后面很多处理都不好做。存储慢,可以试试存储过程,还有是否可以将这么大量的数据进行压缩或是其他方式的处理。

至于你说的其他程序和LV都能读取的方式,这个只是你怎么定义文件结构的问题。
页: [1]
查看完整版本: 求助:关于二进制文件同时存储时间和数值,并被其它开发工具读取