【发布时间】:2020-11-21 01:03:38
【问题描述】:
我有一个文件,其中包含我想在应用程序中加载的信息。该文件有一些标题信息作为字符串,然后是多个以“;”结尾的条目一些条目用于不同的类型,因此长度是可变的,但所有变量都用','分隔
例子:
\Some heading
\Some other heading
I,003f,3f3d00ed,"Some string",00ef,
0032,20f3
;
Y,02d1,0000,0000,"Name of element",
00000007,0,
00000000,0,
;
Y,02d1,0000,0000,"Name of element",30f0,2d0f,02sd,
00000007,0,
00000000,0,
;
I 是一种元素 Y是另一种元素
我想要实现的是,将元素放入不同的结构中以使用。大多数值是数字,但有些是字符串。
我能够实现的是:
- 将文件导入为 Vec
- 把它放在一个字符串中(不能直接这样做,因为我不感兴趣的元素中可能存在 UTF-8 问题)
- 将其拆分为 Vec by ';'
- 根据类型将字符串传递给函数
- 通过 '\n' 将其拆分为 Vec
- 通过','将其拆分为 Vec
- 读出我需要的数据并从字符串中解释(例如str::from_str_radix)
- 构建结构并返回它
这似乎不是要走的路,因为我从字节开始,将它们分配为字符串,然后再次为大多数值分配数字。
所以我的问题是:
我可以将 Vec
【问题讨论】:
-
这听起来像是 vec.split 的工作
-
@IvanC vec.split 回答了标题,但我认为这不是解决方案。在我看来,解决方案似乎是解析,如果不使用“适当的”解析器库,至少是临时的。另外,您不能真正拆分
Split,因此您必须发明一种方案来配对拆分分隔符以了解您的 3 级边界,这基本上是临时解析,除了不好。 -
您是否对正在使用的配置格式一无所知?您可能想研究一些类型化、易于序列化的格式。
-
我设置了格式,因为我从第三方软件读取文件
标签: rust