Я редактирую свой предыдущий пост, потому что добился определенного прогресса, но сейчас немного застрял:
Пример текстового файла приведен ниже.Теперь я могу прочитать файл, выполнить анализ, чтобы получить нужные мне данные и вывести файл.Однако выходные данные помещают данные в отдельные строки, и мне нужно, чтобы выходной файл поместил (имя, срок действия, last_used, адрес1, адрес2, город, штат, почтовый индекс) в одну строку, разделенную запятыми.
Вот код на данный момент:
def is_numeric?(object)
true if Float(object) rescue false
end
def load_file
raw_records = []
infile = File.open("testfile.txt", "r")
#counter =1
while line = infile.gets
possible_account_number = line[0,16]
if is_numeric?(possible_account_number)
account_number= possible_account_number[5,11]
name = line[21,27].strip.gsub(/\,/,"")
expire_date = line[108,8].strip
last_used = line[117,8].strip
line = infile.gets
line = infile.gets
address1 = line.strip.gsub(/\,/,"") #needed for some random commas
line = infile.gets
address2 = line.strip.gsub(/\,/,"")
line = infile.gets
city = line[21, 20].strip.gsub(/\,/,"")
state = line[42, 2]
zip = line[45, 5]
record = [name, expire_date,last_used, address1, address2, city, state, zip]
raw_records << record
#counter = counter + 1
end
end
infile.close
puts raw_records.map {|record| record*','}
File.open('test_w.txt', 'w') do |f2|
f2.puts raw_records.map {|record| record*','}
end
end
#the_string.gsub(/\,/,"")
load_file
Вот необработанные данные:
11111 ABC MOVINGABC, INC 1234567891 LISTINGS 02-06-12 MONDAY 2112-001-001 PAGE 1
1234 CUSTOMIA ROAD SUITE 12345 LIST MANAGEMENT
NOSAOLOS NV 12345
STATEMENTS TISSUE STATEMENTS NAME 1 ABC TISSUES TISSUE ROAD LOC TISSUES PAGE ABC TISSUE
STATEMENTS NAME 2
ADDRESS LINE 1
ADDRESS LINE 2
CITY ST ZIP
TITLE TISSUE NUMBER: 123456789
1234567890000030 MARILYN SMITH 12345678911 05-30-12 01-28-12
1234 ST MARYS BLVD.
SUITE B
NOSAOLOS MI 12345
1234567890000048 MARILYN ACTIVITA 12345678911 05-30-12 09-04-11
1234 ST MARYS BOULEVARD
STE. B
NOSAOLOS OH 12345
1234567890000055 ANDREW WAYMENT 12345678911 05-30-12 01-12-12
123 S. DESCRIBE ST.
NOSAOLOS OH 12345
Вот готовый текст - с помощью Джейсона (спасибо):
MARILYN SMITH,5-30-12 ,1-28-12,1234 ST MARYS BLVD.,SUITE B,NOSAOLOS,MI,12345
MARILYN ACTIVITA,5-30-12 ,9-04-11,1234 ST MARYS BOULEVARD,STE. B,NOSAOLOS,OH,12345
ANDREW WAYMENT,5-30-12 ,1-12-12,123 S. DESCRIBE ST.,,NOSAOLOS,OH,12345
Я также хотел сохранить его в файл, и я использовал это:
File.open('test_w.txt', 'w') do |f2|
f2.puts raw_records.map {|record| record*','}
end
Андрей