Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在多个文件中保存和编辑大量数据_C#_Windows_Hdf5 - Fatal编程技术网

C# 在多个文件中保存和编辑大量数据

C# 在多个文件中保存和编辑大量数据,c#,windows,hdf5,C#,Windows,Hdf5,我正在为Windows开发一个C SW,它控制一个256通道、10kHz、16位5MB/s的采集设备。采集时间一般在1分钟到1小时之间;它作为原始数据保存在一个二进制文件中,其结果大小可能达到许多GB 采集后,使用相同的软件,用户应能够详细说明数据; e、 例如,他应该能够选择两个通道,并将它们添加到一起,生成保存到磁盘的新跟踪;放弃并移除所有通道中采集的最后一部分;要丢弃一大堆频道 在旧版本的软件中,当硬件采样频率较慢且通道数限制为16时,采集的数据保存在文件中。为现有跟踪的每个组合创建一个新

我正在为Windows开发一个C SW,它控制一个256通道、10kHz、16位5MB/s的采集设备。采集时间一般在1分钟到1小时之间;它作为原始数据保存在一个二进制文件中,其结果大小可能达到许多GB

采集后,使用相同的软件,用户应能够详细说明数据; e、 例如,他应该能够选择两个通道,并将它们添加到一起,生成保存到磁盘的新跟踪;放弃并移除所有通道中采集的最后一部分;要丢弃一大堆频道

在旧版本的软件中,当硬件采样频率较慢且通道数限制为16时,采集的数据保存在文件中。为现有跟踪的每个组合创建一个新文件来存储细化结果。所有文件最终压缩在一个单独的归档文件中,附加的xml文件包含采集参数

现在数据量增加了,这种方法非常缓慢,在我看来根本没有效率:在采集之后,大量时间都花在压缩文件上, 而且,每次打开旧的采集文件时,都需要花费很长时间才能将所有文件解压到临时文件夹中,修改它们并重新压缩所有文件

我的第一个想法是切换到hdf5,但在这种情况下,删除数据集时文件不会收缩这一事实是一个很大的限制/复杂因素。

另一个可能更简单的想法是使用旧格式将所有文件存储在一个文件夹中,从而大大简化了开发过程 并声明自定义谓词,以便双击文件夹打开软件。 我有一种感觉,这个解决方案是脆弱的,因为我从来没有见过它在其他应用程序中使用。。。但我找不到真正的问题。。。
你有什么建议?定制谓词是生产系统中使用的好解决方案吗?你看到了很大的缺点吗?

为什么不注册一种新的文件类型,一种描述采集文件和其他文件所在位置的项目文件?VisualStudio就是这样做的。项目文件可以与其他文件位于同一文件夹中。永远值得记住的是,额外的存储比开发人员的时间要便宜得多!谢谢@spender的回答。主要原因是避免基本用户将获取的文件弄乱;特别是,我们不希望用户在保留其他文件的同时意外删除一些已获取的文件,从而产生不完整的集,更重要的是,我们希望保护系统不受用户在同一文件夹中放置两个采集的情况的影响:这就像在同一文件夹中放置两个具有相同名称的Visual Studio项目一样。无论如何,对原始文件名使用guid可能成为一种选择:有人试图以我描述的方式使用自定义动词吗?