根据规范创建自定义文件格式

时间:2018-01-11 11:35:08

标签: labview file-format

我有一个程序可以生成需要以特定.fsc格式存储的数据。该形式用于流式细胞术实验(“计数液体细胞”)。该文件基本上是ASCII头和二进制实验数据。可以找到文件标准的详细说明here

我是新的“异国情调”文件创建,所以我需要知道的是如何创建这样的文件?,根据规范。

我对数据的标题和二进制值的ASCII字符组合感到困惑。我如何将这两者结合起来。我将使用LabVIEW进行此操作,我可以在其中创建仅包含文本的文件,以及二进制文件,其中所有内容都具有二进制值,但不是两者都有。或者它就像创建 .txt 文件一样简单,我在其中写入ASCII标头和我的数据的转换二进制值,然后从 .txt 到 .fsc

2 个答案:

答案 0 :(得分:4)

原则上,每个文件都是二进制文件,我们是否可以将其读取为文本文件,这取决于字节是否以ASCII格式格式化,其中特定规则适用于表示ASCII值的二进制数。从二进制到ASCII字符的转换很容易在任何ASCII table中看到。

对于FSC格式,它规定标题应保存在ASCII标准中(如此平面文本)。实际数据可以以多种格式存储,具体取决于您在标题中指定的内容。

FSC Standard 3.3 Data Segment section这是数据格式的摘录:

  

DATA段包含三种模式之一的原始数据(列表,相关或不相关)   通过$ MODE关键字值在主TEXT段中描述。数据被写入   DATA段以四种允许的格式之一(二进制,浮点,双精度浮点数)   $ DATATYPE关键字值描述的点或ASCII)(另请参阅描述   $ DATATYPE关键字)。

所以数据可以是任何东西,包括ASCII。

要读取数据,您需要将标题读取为ASCII格式,解读标题信息并从标题后的第一个字节读取指定格式的文件的其余部分。

一种可能的捷径是,如果您的仪器(或任何流量计)具有labview驱动程序并查看它们是否有可用于读取FCS文件的库

答案 1 :(得分:2)

为D.J.Klomp的好答案添加几点:

  • 默认情况下,LabVIEW不支持Unicode,因此它将字符串视为始终为8位字节的字符序列。这意味着您可以使用字符串数据类型来处理任何字节序列数据,无论它是否实际上是" text"。
  • 从快速扫描规范可以看出,您应该能够通过仔细使用LabVIEW的格式化为字符串功能来创建所有文本格式数据。请注意,这会将其输出附加到您连接到initial string输入的任何字符串,因此您可以将它们链接在一起以在多个操作中构建数据。
  • 如果您需要使用二进制格式数据(并且从您问题中的引用看起来好像您可能不需要,除非此数据的目标不支持其他允许的类型?)您可以在U8整数数组中准备它然后使用 Byte Array to String 将其转换为字符串。
  • 规范提到每个段的CRC值,但建议使用它是可选的 - 如果你发送此文件的程序或工具抱怨丢失CRC,你应该能够找到一个VI来计算它NI网站。我无法记住我过去曾使用过哪一个,但是通过快速搜索answer here中的那个听起来应该有效。