真值表提取

myullian 2009-05-14 11:00:36

' m_1 m_2 m_3 m_4
' ---------------------------------------------------
' Data 0 3 3 0
' Status 3 0 3 3
' speed 3 3 3 3
' core 4.123 4 4 4
' User 0 0 0 1
' Version<y> 0 0 c 0
' Data Block Format 2 2.12 2 2
' ---------------------------------------------------
' core<x>PilotTripped<Tag>Int 0 0 1 1

' m_5 m_6 m_7
' ----------------------------------------------
' Data 3 3 3
' Status 0 3 0
' speed 3.25 3 3
' core 5 5 5
' User 0 0 1
' Version<y> 0 0 b
' Data Block Format “-” 9.2 2
' ----------------------------------------------
' core<x>PilotTripped<Tag>Int 0 1 1

' m_8 m_9 m_10
' -----------------------------------------------
' Data 3 3 3
' Status 0 3 0
' speed 3 3 3
' core 6.256584 6 6
' User 0 0 1
' Version<y> 0 a 0
' Data Block Format “-” 2 2
' -----------------------------------------------
' core<x>PilotTripped<Tag>Int 0 1 1
上面部分是txt文本里面的真值表,怎样解析出各个变量的数值?
难点:1、第一列是变量含义,并不是变量名,可以含有空格
2、每列的数据宽不等,不完全列对齐
3、变量中可能含有符号

...全文
227 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 myullian 的回复:]
引用 3 楼 hairetz 的回复:
引用 2 楼 myullian 的回复:
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里


Data Block Format 2 2.12 2 2

这里每行都是Data Block Format这个名字啊,也就是2个空格,有固定规律啊,怎么不能解析?
每块数据的第7行的名字都有2个空格啊,不是吗,可以解析啊

我是拿…
[/Quote]

这算是你维护数据格式的问题。
一般我会在一个数据结束加一个特殊的结束符号,一个数据开始,加个开始符号,这样便于解析。

你这么多未定的情况,建议别只用空格来区分。
别说是编译器,就算是人。
Data Block Format 2 2.12 2 2
32 User 32 2 2.12 2 2


你能区分第2个32是名字的一部分,还是数据呢?
mengde007 2009-05-14
  • 打赏
  • 举报
回复
不是有个cctype头文件吗;然后调用isdigit()函数判断是否是数字;
myullian 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hairetz 的回复:]
引用 2 楼 myullian 的回复:
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里


Data Block Format 2 2.12 2 2

这里每行都是Data Block Format这个名字啊,也就是2个空格,有固定规律啊,怎么不能解析?
每块数据的第7行的名字都有2个空格啊,不是吗,可以解析啊
[/Quote]
我是拿这个作为例子,实际的文件中有很多这样的表,里面文本的格式像“Data Block Format”是不固定的,有的地方格式像“32 User”。
我也是采用空格分隔来提取每个参量,但是碰到带空格的就会提取错位了,有没有更好的办法不限于这个空格?
liliangbao 2009-05-14
  • 打赏
  • 举报
回复
按照整行读取,然后解析~
xianyuxiaoqiang 2009-05-14
  • 打赏
  • 举报
回复
恩,对照文件格式写个正则表达式
光宇广贞 2009-05-14
  • 打赏
  • 举报
回复
哪里看出是真值表来着?

我还以为是数字电路里面的组合逻辑呢……
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 myullian 的回复:]
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里
[/Quote]

Data Block Format 2 2.12 2 2

这里每行都是Data Block Format这个名字啊,也就是2个空格,有固定规律啊,怎么不能解析?
每块数据的第7行的名字都有2个空格啊,不是吗,可以解析啊
myullian 2009-05-14
  • 打赏
  • 举报
回复
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里
  • 打赏
  • 举报
回复
先不管,getline读出。你一块数据,行数总是固定的吧。

读出来之后按照空格为标志,进行解析。
myullian 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hairetz 的回复:]
引用 7 楼 myullian 的回复:
引用 3 楼 hairetz 的回复:
引用 2 楼 myullian 的回复:
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里


Data Block Format 2 2.12 2 2

这里每行都是Data Block Format这个名字啊,也就是2个空格,有固定规律啊,怎么不能解析?
每块数据的第7行的名字都有2个空格啊,…
[/Quote]
上面是原来的格式,这是另一个软件产生的文本文件存储这个数据表,我想做一个软件自动解析这个表
myullian 2009-05-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hairetz 的回复:]
引用 7 楼 myullian 的回复:
引用 3 楼 hairetz 的回复:
引用 2 楼 myullian 的回复:
' Data Block Format “-” 2 2
在这一行里面前面的名字里面有空格,我想解析出来存到一个二维数组里面或是vector里


Data Block Format 2 2.12 2 2

这里每行都是Data Block Format这个名字啊,也就是2个空格,有固定规律啊,怎么不能解析?
每块数据的第7行的名字都有2个空格啊,…
[/Quote]
我写的那个东西不太好,格式显示的时候有点乱
aaaa3105563 2009-05-14
  • 打赏
  • 举报
回复
帮顶

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧