Итак, я написал некоторый код на Ruby, чтобы разбить текстовый файл на отдельные строки, а затем сгруппировать эти строки на основе символа разделителя. Затем этот вывод записывается в массив, который передается методу, который выплевывает HTML в текстовый файл. Я начал сталкиваться с проблемами, когда пытался использовать gsub в различных методах для замены заполнителей в текстовом файле HTML значениями из массива record
- Руби продолжал говорить мне, что я передаю нулевые значения. Пытаясь отладить эту часть программы в течение нескольких часов, я решил поискать что-то еще, и, думаю, я кое-что понял. Модифицированная версия программы размещена ниже.
Вот пример входного текстового файла:
26188
WHL
1
Delco
B-7101
A-63
208-220/440
3
285 w/o pallet
1495.00
C:/img_converted/26188B.jpg
EDM Machine Part 2 of 3
AC Motor, 3/4 Hp, Frame 182, 1160 RPM
|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|
Вот фрагмент кода, с которым я тестировал:
# function to import file as a string
def file_as_string(filename)
data = ''
f = File.open(filename, "r")
f.each_line do |line|
data += line
end
return data
end
Dir.glob("single_listing.jma") do |filename|
content = file_as_string(filename)
content = content.gsub(/\t/, "\n")
database_array = Array.new
database_array = content.split("|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|")
for i in database_array do
record = Array.new
record = i.split("\n")
puts record[0]
puts record[0].class end
end
Когда этот код запускается, я получаю этот вывод:
john@starfire:~/code/ruby/idealm_db_parser$ ruby putsarray.rb
26188
String
nil
NilClass
... что означает, что каждая позиция массива в record
, очевидно, имеет данные типа String
и типа nil
. почему это?