Запускайте параллельные циклы в Ruby - PullRequest
0 голосов
/ 30 октября 2018

У меня есть два набора массивов, хранящихся в файле, и мне нужно извлечь значения одно за другим и сравнить их. Я использую этот код, но похоже, что я делаю правильно.

# First Dataset
File.foreach(file_set_a) do |data_a|

  data_array_a = data_a.split("\t")
  @file_name_a = data_array_a[0]
  @file_ext_a = data_array_a[1]

  # Second Dataset
  File.foreach(file_set_b) do |data_b|

    data_array_b = data_b.split("\t")
    @file_name_b = data_array_b[0]
    @file_ext_b = data_array_b[1]

    #Compare
    @file_name_a == @file_name_b 
  end
end

Проблема в том, что я не могу вернуться и извлечь следующие значения в наборе A при входе в набор B. Есть предложения?

1 Ответ

0 голосов
/ 30 октября 2018

Сначала преобразуйте эти 2 файла в два отдельных массива данных

lines_array_a = File.readlines(file_set_a)
lines_array_b = File.readlines(file_set_b)

Я предполагаю, что размер обоих массивов будет одинаковым. Теперь запустите цикл и получите элементы из обоих массивов, чтобы сравнить их.

for i in 0..(lines_array_a.count - 1) do
  data_array_a = lines_array_a[i].split("\t")
  @file_name_a = data_array_a[0]
  @file_ext_a = data_array_a[1]

  data_array_b = lines_array_b[i].split("\t")
  @file_name_b = data_array_b[0]
  @file_ext_b = data_array_b[1]

  @file_name_a == @file_name_b
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...