有限状态机解析配置文件

简介: 有限状态机是文本处理的利器,关于有限状态机的理论比较复杂,但在实际文本处理应用中, 只需要对有限状态机的模型有所了解,搞清楚状态转移关系即可快速的写出程序。   如对网络配置文件进行解析(与/etc/sysconfig/network-scripts/ifcfg-eth0文件...

有限状态机是文本处理的利器,关于有限状态机的理论比较复杂,但在实际文本处理应用中,

只需要对有限状态机的模型有所了解,搞清楚状态转移关系即可快速的写出程序。

 

如对网络配置文件进行解析(与/etc/sysconfig/network-scripts/ifcfg-eth0文件类似的格式)

格式如下:(其中以#开头的行为注释行,有效的配置字符为数字,字母和点号)

 

#this is a net work config file

IPADDR = 192.168.1.71

NETMASK = 255.255.255.0

GATEWAY = 192.168.1.1

 

我们可以定义四种状态:

1.  初始状态

2.  KEY状态,读到配置键的时候进入该状态

3.  VALUE状态,读到配置值的时候进入该状态

4.  DELIM状态,即keyvalue之间的分隔符

 

状态转移关系图如下:(对于xmlini等配置文件的解析,状态转移图复杂得多)

 20196318_1295257709et6W.jpg

 

具体实现如下:(C语言)

 

rar.gif parse_config.rar   

 

rar.gif parse_ini.rar   (ini文件解析器)

相关文章
|
4月前
|
XML 数据采集 JavaScript
Java【XML 配置文件解析】
Java【XML 配置文件解析】
|
6月前
|
存储 NoSQL Redis
Redis配置文件解析
Redis配置文件解析
60 1
|
7月前
|
Java 应用服务中间件 Maven
解析Spring Boot中的Profile:配置文件与代码的双重掌控
解析Spring Boot中的Profile:配置文件与代码的双重掌控
|
2月前
|
存储 JSON JavaScript
【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)
"YAML Ain't Markup Language"(简称YAML)是一种专为人类设计的数据序列化语言,适用于多种现代编程语言,可广泛应用于各类日常任务。它是一种以人类可读形式呈现的、适用于多种语言的Unicode数据序列化标准。它基于敏捷编程中常见的本地数据结构,广泛应用于配置文件、互联网消息传递、对象持久化以及数据审计等多个领域。遵循Unicode标准、
102 8
【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)
|
8月前
|
前端开发 Java 数据库
SpringBoot解析指定Yaml配置文件
最近在看某个开源项目代码并准备参与其中,代码过了一遍后发现多个自定义的配置文件用来装载业务配置代替数据库查询,直接响应给前端,这里简单记录一下实现过程。
266 0
|
8月前
|
关系型数据库 MySQL Java
ssm连接mysql引入外部配置文件username无法被正确解析
ssm连接mysql引入外部配置文件username无法被正确解析
55 0
|
4月前
|
XML Java 数据库连接
MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml
MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml
93 0
MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml
|
7月前
|
Java 数据库连接 mybatis
Mybatis配置文件之<settings>属性配置元素解析
Mybatis配置文件之<settings>属性配置元素解析
85 0
|
8月前
|
Unix 应用服务中间件 文件存储
Nginx编译,配置文件的相关解析
Nginx编译,配置文件的相关解析
61 0

推荐镜像

更多