Сравнение структур yaml файлов с++

191
24 июня 2018, 18:30

Нужно с использованием библиотеки yaml.h написать код для сравнения yaml файлов. Что бы он их сравнивал, выводил равны они или нет, если нет, то выводил разницу (дополнительные строчки которые содержит один из файлов) Вот собственно что я нашёл:

def compare_yaml_hash(cf1, cf2, context = []) 
  cf1.each do |key, value| 
 
    unless cf2.key?(key) 
      puts "Missing key : #{key} in path #{context.join(".")}" 
      next 
    end 
 
    value2 = cf2[key] 
    if (value.class != value2.class) 
      puts "Key value type mismatch : #{key} in path #{context.join(".")}" 
      next 
    end 
 
    if value.is_a?(Hash) 
      compare_yaml_hash(value, value2, (context + [key])) 
      next 
    end 
 
    if (value != value2) 
      puts "Key value mismatch : #{key} in path #{context.join(".")}" 
    end 
  end 
  nil 
end 
 
compare_yaml_hash(YAML.load_file('file1.yml'), YAML.load_file('file2.yml'))

Но тут как я понял немного не то, и не полностью. Как это переделать под полную рабочую программу?

READ ALSO
Цикл для школьной задачи

Цикл для школьной задачи

Допустим, что задача звучит следующим образом:

219
Qt сделать окно квадратным

Qt сделать окно квадратным

Как сделать MainWindow квадратным? Нужно чтобы окно можно было растягивать, но при этом его высота и ширина оставались одинаковыми

185