Мне нужно разобрать текстовый файл с разделителями табуляции в Ruby, чтобы извлечь из него некоторые данные. По какой-то неизвестной причине некоторые столбцы не используются и являются просто разделителями; Я хотел бы игнорировать эти столбцы, поскольку мне не нужен их вывод (однако я не могу просто игнорировать все пустые столбцы, поскольку некоторые допустимые столбцы имеют пустые значения). Я уже знаю индексы этих столбцов (например, столбцы 6, 14, 24 и 38).
Хотя я мог бы просто добавить условное выражение во время синтаксического анализа файла и сказать, что нужно выполнить синтаксический анализ, если только это не один из этих столбцов, это не выглядит очень «рубиново» - есть ли лучший и более элегантный способ справиться с этим? RegExps, возможно? Я думал сделать что-то вроде [6, 14, 24, 38].each { |x| columns.delete_at(x) }
, чтобы удалить неиспользуемые столбцы, но это заставит меня пересмотреть индексы столбцов, которые мне действительно нужны. То, что я действительно хотел бы сделать, это просто пройтись по всему циклу, проверить индекс текущего столбца и игнорировать его, если он один из «плохих». Однако, кажется очень уродливым иметь такой код, как unless x == 6 || x == 14 || x == 24 || x == 38