-2
我有一個配置文件,我想解析並以不同格式寫入新文件。如何解析配置文件中的變量
我得到這種格式
args([
"-key1 val1",
"-key2 2",
"-key3 true"
])
鍵都是字符串變量,值可以是字符串,BOOL,INT。
是有辦法以有效的方式來分析呢?
我有一個配置文件,我想解析並以不同格式寫入新文件。如何解析配置文件中的變量
我得到這種格式
args([
"-key1 val1",
"-key2 2",
"-key3 true"
])
鍵都是字符串變量,值可以是字符串,BOOL,INT。
是有辦法以有效的方式來分析呢?
如果我理解正確的問題,下面的代碼將做到:
ar = ["-key1 val1", "-key2 2", "-key3 true" ]
ar.map { |e| e =~ /\A-(\S+)\s+(.*)\z/ && [$1, $2] }.compact.to_h
#⇒ {
# "key1" => "val1",
# "key2" => "2",
# "key3" => "true"
# }
沒有轉換類型,除了猜測它們的能力。當-key value
行存儲在文件中時:
File.readlines("path/to/file.cfg").map do |e|
e =~ /\A-(\S+)\s+(.*)\z/ && [$1, $2]
end.compact.to_h
我正在讀取用戶寫入的文件。一個給出的關鍵值就是一個例子。 所以我正在尋找更通用的東西。謝謝 – ilan
我給出的示例是我試圖閱讀的文件的一部分 – ilan
「更通用」是什麼意思?雖然文件由'-key value'行組成,這段代碼工作得很好。無論您希望獲得其他輸入,請明確指定。 – mudasobwa