Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "csv"
- init_procs = {}
- exec_procs = {}
- init_procs['QUESTION'] = Proc.new do |record|
- q_no[0] = record.scan(/\d+/)[0].to_i
- array = []
- end
- exec_procs['QUESTION'] = Proc.new do |record|
- if record =~ /\w/
- if array.empty?
- array << record
- else
- if prefix = array.last.match(/\w\.\s/)
- array.last == prefix[0] ? array.last << record : array << record
- else
- array << record
- end
- end
- end
- end
- init_procs['Answer'] = Proc.new do |record|
- q_answer = record.scan(/\w+/)[1]
- q_text[q_no] = array.join("\n")
- end
- exec_procs['Answer'] = Proc.new do |record|
- end
- q_text = []
- q_answer = []
- state = 'Answer'
- File.open('Venu Itil.txt', 'r') do |input|
- while record = input.gets
- new_state = record.scan(/\w+/)[0]
- if init_procs[new_state]
- state = new_state
- init_procs[state].call(record)
- else
- exec_procs[state].call(record)
- end
- end
- end
- File.open('test.csv', 'w') do |output|
- for q_no in Range.new(1, q_answer.length - 1)
- output.puts CSV.generate_line([q_no, 0, 0, 3, q_answer[q_no], q_text[q_no]])
- end
- end
Add Comment
Please, Sign In to add comment