【问题标题】:What type of delimiter is being used?正在使用什么类型的分隔符?
【发布时间】:2016-12-07 20:24:36
【问题描述】:

我正在尝试解析一个没有任何规范来指导我的文件。我计划将此文件的一部分拆分为变量名,但我不确定这些字段是如何分隔的。显然,分隔符的变化方式有一种模式......有人能指出我正确的方向吗?

这是我感兴趣的数据(为清楚起见,我添加了空格):

@EEFDAAH TFLBFile CM ExecutionName EL FileContents GI %reserved IJ &ReadCount KE vTest B@CQETMV@Dmain@޾àÅU

完整文件(减去一些不可见的控制字符):

MFP214DTest
JA
BMExecutionNameLFileContents
BCEAƒSTCF01TFLBFileTestRead0f36c096fa0~1~2~1~2~0~0~0~0~0~0~0~0~0~0~0~0~0~0~TFLBFile~TFLBFile~~0~0~2~0~0~0~0~1~0~0~0~0~0~0~ExecutionName~ExecutionName~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~1~0~0~0~0~FileContents~FileContents~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~1~0~0~0~0~0~1~~0~2~'Test'~15~0~1~0~FQ_dbopenwithfieldsDG_dbreadHprintoutFAHJ@A@WSHSJSGSASDSFSLQNhSHSJSGSISPQRhSESHQThSBTKf@EEFDAAHTFLBFileCMExecutionNameELFileContentsGI%reservedIJ&ReadCountKEvTestB@CQETMV@Dmain@޾àÅU

【问题讨论】:

  • 能否请您发布确切的数据?没有澄清空白,只有确切的数据。另外,你能给我们一些关于这个文件来自哪里的背景信息吗?另外,请尝试在十六进制编辑器中查看该文件。
  • 都是文字吗?有换行符吗?
  • 不可见的控制字符可能很重要。
  • @mckenzm 在我感兴趣的数据之前有一个EOT,但在那之后没有不可见的字符。

标签: c file parsing delimiter


【解决方案1】:

如果您再发布一两条记录可能会更好,而且还有十六进制。如果记录类型不同,您首先需要识别它们。确实看起来前导字段的处理方式可能有所不同,一个记录级别的标题,它们看起来是用空格分隔的。尝试假设这里有固定数量的字段。如果失败,则可能存在不同的记录类型,并且包含的​​数据可能取决于记录开头的映射或类型。与 argv[] 元素作为值对类似,这些字段可能可以按任意顺序读取。架构也将是有用的信息,尾随字节看起来可疑二进制..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    相关资源
    最近更新 更多