LINUX.ORG.RU

Ruby, класс чтения файлов


0

0

Есть файл определённого формата. Хотелось бы сделать класс, который бы реализовывал его чтение и извлечение данных. В файле хранятся записи вида "имя:поле a:поле b:поле c". Нужно иметь возможность как обрабатывать данные последовательно, так и получать доступ к любой записи по имени. Каждая запись — по сути хеш с ключами a, b и c и значениями, взятыми из полей a, b и c соответственно.

Как правильнее всего реализовать такой класс на Ruby?

anonymous

Может yaml?

Вот пример:

Запись: require 'yaml' hash = { 1=>11, 2=>22, 3=>33} File.open("test", "w") { |f| f.write(hash.to_yaml) }

Считывание: require 'yaml' hash = File.open("test", "r") { |f| YAML.load(f.readlines) }

Devix
()
Ответ на: комментарий от Devix

Может yaml?

Вот пример:

Запись:
require 'yaml'
hash = { 1=>11, 2=>22, 3=>33}
File.open("test", "w") { |f|
  f.write(hash.to_yaml)
}

Считывание:
require 'yaml'
hash = File.open("test", "r") { |f|
  YAML.load(f.readlines)
}
  

Devix
()

Кстати какраз для твоего случая и подходит:

require 'yaml'
YAML.load("1: 11\n2: 22\n3: 33\n")

Devix
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.