将读取INI文件的类用Ruby翻译了一下,记下来备用
class INIReader
def initialize(fileName)
@sections = {}
current_section, kv_hash = nil
File.open(fileName).each_line do |line|
line = line.strip
if line != ''
if line[0].chr == '[' and line[-1].chr == ']'
current_section = line[1, line.length - 2]
kv_hash = {}
else
kv = line.split("=")
kv_hash[kv[0]] = kv[1]
@sections[current_section] = kv_hash
end
end
end
end
def get_sections
@sections.keys
end
def get_keys(sectionName)
(@sections[sectionName]).keys
end
def get_value(sectionName, keyName)
(@sections[sectionName])[keyName]
end
end
# tester
reader = INIReader.new('test.ini')
puts reader.get_sections
puts reader.get_keys('Section2')
puts reader.get_value('Section3', 'key3')
在编写这段代码时查到一段输出调试Hash的技巧
使用普通的puts方法输出Hash对象是key-value连在一起的,基本不可读;
简单的Hash对象可以使用这种 p 方法输出查看
p hash
复杂的Hash对象可以使用 pp 方法输出查看,这种输出叫pretty-print
require 'pp'
pp hash
分享到:
相关推荐
通过以上内容,你应该对Ruby如何读写INI文件有了全面的了解。无论是使用标准库还是第三方库,都能帮助你高效地处理配置文件,为你的Ruby项目提供便捷的配置管理方案。在实际项目中,可以根据具体需求选择合适的方法...
除了上述方法,还可以使用其他语言(如Java、Ruby等)的库或自定义解析逻辑来读取`.ini`文件。关键在于理解文件结构,并使用适当的字符串处理或解析工具。 6. 安全性和权限: 在实际应用中,读取配置文件时要注意...
### 读取ini文件的工具 在Linux下,没有内置的命令行工具直接用于读取或修改`.ini`文件。但可以通过以下两种常见方法来处理: 1. **使用脚本语言**:你可以使用支持解析`.ini`文件的脚本语言,如Python、Perl或...
在Ruby中,可以使用`File`类和`Dir`类来与文件系统交互,比如创建、移动或读取文件。对于图片的元数据,如拍摄日期,Ruby可能通过ImageMagick或MiniMagick这样的第三方库来获取,这两个库能够解析常见的图像文件格式...
读取和写入YAML,JSON,TOML,INI,HCL和Java属性格式的配置文件 添加自定义编组器或覆盖内置编组器 设置和读取深度嵌套键的设置 为未定义的设置设置默认值 读取访问权限无异的设置 合并其他哈希对象的配置设置 从...
— 一个快速而肮脏的脚本,它读取 Objective-C 源代码并将粗略的部分翻译输出到 Swift。 期望与谷歌翻译产生的流畅和优雅水平相似,即不多。 — 在将 Objective-C 代码转换为 Swift 时,该工具可让您免于进行大量...
编辑php.ini文件,添加扩展支持: ```ini extension=redis.so ``` 重启PHP-FPM和Web服务器: ```bash systemctl restart nginx.service systemctl restart php-fpm.service ``` ### Redis的常用命令 - **Keys**...
5. Game.ini:游戏配置文件,存储了游戏的各种设置和用户数据,修改器可能通过读取或修改这个文件来改变游戏状态。 6. Snap1.jpg到Snap6.jpg:这些可能是游戏截图,可能用于展示修改器的效果或者作为教程的一部分。...
- 需要配置***f和config.ini文件来设置集群参数。 - MySQL Cluster可通过RPM或源代码包安装,且需要设置正确的用户权限。 - 集群节点间通过TCP/IP通信,各节点需要正确配置IP地址和端口号。 - MySQL Cluster支持多种...
- 上述配置允许`tearsky`用户对整个仓库有读写权限,其他用户仅有读权限。 #### 五、启动SVN服务 1. **启动SVN服务** - 使用以下命令启动SVN服务,并指定仓库的位置及运行模式。 ```bash svnserve -d -r /svn/...
Zend Framework 1.5.0版本支持XML和INI文件配置,同时它还集成了PHP PEAR,提供了大量的Web 2.0功能。该框架的官方文档详细介绍了如何利用其组件库进行高效开发。 Symfony是一个成熟的框架,它强调减少编码和开发...
- **配置文件的作用**:Redis通过读取配置文件初始化服务器的各种设置,如端口、持久化方式等。 - **启动命令**:使用`redis-server redis.props`来启动Redis实例,其中`redis.props`是指定的配置文件名称。 #### ...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...
INI文件操作类库 [ini4j] [ini4j] 是一个简单的Java类库,用来读写Windows的ini配置文件。同时还包含一个 Java Perferences API 的实现。 拒绝服务测试工具 Port Groper PortGroper 是一款java写的开源拒绝服务测试...