Skip to content

Instantly share code, notes, and snippets.

@eugenio-oliveira
Last active July 26, 2019 00:56
Show Gist options
  • Save eugenio-oliveira/bd7788b396272fcb0f06aa14248d1b23 to your computer and use it in GitHub Desktop.
Save eugenio-oliveira/bd7788b396272fcb0f06aa14248d1b23 to your computer and use it in GitHub Desktop.
leitor de gabaritos
003000001001030617001 5372 #0001 N 081203031 EEECBEBABABCEEAACDAEDABCCDDBEAEAEAEABBDBACCACDEBBEDCBEDEBBDCCDCDABBEADDBACEDCEABCDBCCECEED
003000002001030617001 5372 #0001 N 020100180 EEDBBEDABBECACBADEAECADACDDBAACEEBCAABEAACAACDEBAEACBEDCCBECCDECABBEDEDBACAACEAEBDDBCECADA
003000003001030617001 5372 #0001 N 050402301 CEEEBEDABBBCEAEEDEDDDEBCCDDBEAEAECEDCBDDDCCACDEBBEDCBEDEBBDACDCDABBEEDABACEDCECBCDBCCEBEDD
003000004001030617001 5372 #0001 N 030200730 BBEBBCBBBABCACEABDDCDABECAECAECEEAEBABDDADCACDEBBEDCCEDABDECCBCDAABEEDCBDCAACECACDBCCDDACB
003000005001030617001 5372 #0001 N 030201161 EEDBBEAABBCCCEEACCBEEABECDEBAAEEEDEEBBDBACCACDEBBEBCCEDCBBECCDADABBEEDBBCEADCECECDBCCDCEBD
003000006001030617001 5372 #0001 N 020100670 EEABAECAABCCDDBACDEDBBBDBDEBACAAECEABBCCBBAACDEBBEDCBEDCBBECCDCDABBEEDBBACEDCECBDDBDCEBEDD
003000007001030617001 5372 #0001 N 011404641 EEEBDCDABEEBEABABDBEEBBCCDDBBACAEBEBBBDEECCCCDCBBEDBBEDABBECCDCDABCEEDABBCBECACECDBACEBEDD
003000008001030617001 5372 #0001 N 020100390 EEDBBBBABBCCACEADEEEDABCCADCEBAAEBEADBABADCACDCBBECCCEDCBBECCCBCABBEDDCBCCADEEABCDCCCEBADC
003000009001030617001 5372 #0001 N 030200251 EEDBBEBAABCCECEACCABCABECDECAACAEBEABBDBBACECDCBBEDCBEDEBBECDDCDABBEEDBBDCBBCECECDBCCDDABA
003000010001030617001 5372 #0001 N 111504080 EEDBBCBDBBCEEADABCDBEABBCDDBADCAEBECDBDEAAAACDEBBEDCBEDCCBECCDDDABBEEDDDACAECEDBCDCCCBBEDD
003000011001030617001 5372 #0001 N 111504051 EEDBBAAABEBCEDDAACBECABCCDEBACCAEBEABBDBACCACDEBBEDCCEDEBBECCDCDABBEEDBDBCEDCEAACDBCCEBEDD
003000012001030617001 5372 #0001 N 071103290 EEBBBECABCBCADEADCCECABCEDECACCAECEABBDBAECACDCBBADCBEEEBBDCCDCDABBEEDBBACABCEABCDBCCECEDD
003000014001030617001 5372 #0001 N 152300070 EEDBBECABDBCECEADEADBABCCDECBBCAEBEADBDBACCACDDEBEDCBEDEBBDCCDCDABBEEDCEACADCEABCDBACECBDE
003000015001030617001 5372 #0001 N 050402081 EEDEBAAABDDCACEADEBDCABCCDDBAADAEBEADBDDACCACDEBBEDCCEDECEEACDCDABBEEDDBACBCEECECDACCEBEAD
003000016001030617001 5372 #0001 N 020200820 EEEBBACABBBCDCBACEBDCABCCDDBBACAEBABBBEAAEAACDCBBEDCCEDEBBECCDCDABBEEDDBBEADCEAECDDCCDEEDD
003000017001030617001 5372 #0001 N 020200810 EEDBCEDABBECAAEACDEDCCBECDDBAACCEBEABBEDACCAEDEBBEBDDEDEABECCDCBABDEEDBDBCADCEAECDBDCBCEAE
003000018001030617001 5372 #0001 N 131703790 EEABBEDAAEBDAEEADCDDCABECDDBEBAAEDEADBDBBCCACDCBBEDCCEDCBBECCDCDABBEEBBBACADCECECDBECACEDD
003000019001030617001 5372 #0001 N 050402031 EEBBBABABBBCADDADDDECBBCCDEBACCEEAAEEBDDACEACDCBAEDCEEDEABEACDCDABBEDDABEAADCEABCDACCEBEDD
003000020001030617001 5372 #0001 N 201605361 EEBBBDBABBBCADAADEBACABCCDDBACCAEAEBDBBEBBCBCDEBBADCBEDADBECCDBDACEEEAEEADABCEABCDBCCECEDD
003000021001030617001 5372 #0001 N 030201380 EEEBAECABDECDCEADCBDEBBCCDDBABDAEAAABBBEACCACDEBBEDCBEDDBBECCDCDABBEEDDBBCADCEADCDBCCECEDD
003000022001030617001 5372 #0001 N 141803121 EEEBBCBABDBDAAEBDCBCAABBCDEBCCCCEBABAAADAACCCDBBBBACCEDABEECCDCDABBEEDCBCCCBCEABDDDBCBBEED
003000023001030617001 5372 #0001 N 061103410 EEBABBEABDBCAABABEADABBCCDEBCCCCEBEABBBBACCACDCBDDCCCEDCBBDCCDDDADBEEDBBBCAECECECDCECDDEBA
003000024001030617001 5372 #0001 N 121604170 EEEBBEEABBBCCAAADEADCABCCDEBAADAEBEEBBDBDACACDEBBEDCBEDEBBBCCDCDABBEEDBBACEACEAEDDBDCBAEDE
003000025001030617001 5372 #0001 N 131702901 EEDBBECBBEBCACEACCEBCADCCDEBEBCAEBECDBAEBCCACDCEBEDCECDABDECCDCEABCEEB BBDAACECBCADBCDDABD
003000026001030617001 5372 #0001 N 131803680 ECCBBDCABBBDECEACCBCEABECDEBABCAEAEBCBDBACCCCDCCBEDCBDDEABDCCDEDABBEEDBDACADCEAECDDBCCBEDE
003000027001030617001 5372 #0001 N 030200531 EEDBBEDABABBDAAADCAEDABACDDBABCAEBEABBABACCACDEDBEECCEABDBBCCDCDACBEEDCDAEACCEEEADCDCBEEDE
003000028001030617001 5372 #0001 N 030201070 ECEBAADACDBCCCBAECADEABBCDEBAAEEECEBBBADDAECBDEBBEDCCEDEBBDCCDCDABBEADBDACADCEDECDBCCECEAD
003000029001030617001 5372 #0001 N 020100141 EEEBBEAABEBCCABACDADCABECDDCACCAEAEABBDCBCCACDEEBEDBBEDEBBACCDCBABBECDBEDDACCBCBDECDCCBEDB
003000030001030617001 5372 #0001 N 101403400 EDEBBEBAAEECAABADCBBCBBCCDDCABCAEBEBBBCCBCCACDCBBEBCADDCBBDECACDABBEEDADDCACCEBEDDECCABEBB
003000031001030617001 5372 #0001 N 040301901 EEABBEDABDCDEAAADEBBCABCCDEBAACAEBDABBDBACCACDCEBEDCCEDEBBECCDCDABBEEDABACBBCEAEDDBCCDDEAD
003000032001030617001 5372 #0001 N 030200210 EECBBECAAACCCDAAEEBECABECDDBACEAEBAABBDDACCACDDCADDCEEDEBBECCDCDABBEEDABAAADCEDBCDBCCCCEBD
003000033001030617001 5372 #0001 N 020200631 EEDBBABAEAACABAADDADEABECDEBEADAEBEBBBDBACCACDEBBEDCCEDABEECCDDDABDEEDDBACADEEAACDADCEBDAD
003000034001030617001 5372 #0001 N 030200800 EEDBBADABEBCADEADECEEABBCDEBAAEAEBBABBDDAECACDEBBEACBEDBBBDCCDCDABBEEDBBACAECEEECDCBCDBEDA
003000035001030617001 5372 #0001 N 030200900 EECEBADABEECDEAADCBDCABCCDDBAACAEBEAABCDEDCACDDBBEDCBEDEBBDCCDCDABBEEDDBBADECEABCDBBCABCDE
003000036001030617001 5372 #0001 N 040301481 EEDBDEDABDECEDEEDDBDCABCCDDBABCAEBEADBDDACCACDCBBEDCBEDEBBDCCDCDABBEEDEBACADCEAECDBBCEBEDD
003000037001030617001 5372 #0001 N 201711720 EADECEDAEEBCDAEABDAEEABECDEBECEAEAEEBBBDABCACDEBBEACDEDEBBECCDCDABCEEDBBACAECEAEDBBDCECEDD
003000038001030617001 5372 #0001 N 141803151 EEEBBCCABEECAAACDDBECCBDDADBBBBCCEAACCBBAAEAEDEBBEDCCEDEBBDCCDCDABBEEDDBACEDCEABCDBCCEBEDD
003000039001030617001 5372 #0001 N 030401730 EECBBEDABEBCECDADCBECABCCDCBDACAEAEBDBDDACEACDCBBEDCCEDEBADCCDCDABBDEDBAADAECEBECDDDCEBADD
003000040001030617001 5372 #0001 N 030201141 EEDBBEAABBCCEDEADEAECABECDEBEAEAEBEABBDDACCACDCBBEBCBEAABECCCACEAEBEEDCCCCABCECECDCACBCECC
003000041001030617001 5372 #0001 N 050402190 EDDBBEDABDBCAEEACEADDABCCDEBABEAEDEADBEBACCACDEBBEACAEDABBDCCDCDABBEEDBBACEDCEAECDBCCEAEDD
003000042001030617001 5372 #0001 N 201605401 EEBBBEDABDECEA ADD EDBDCBDDBECCEDBCACBEDAECCCDEBBEBCBEDACBECCDD ABBEEDACBECDAECBDACEDCAEDD
003000043001030617001 5372 #0001 N 040100980 EEDBBABABBBCAACAEECDCBACCDDBAACAEDEABBDEACCACDEBBADCCEDEBBDCCDCDABBEEDBBDCADCEAECDBCCEBBDD
003000044001030617001 5372 #0001 N 050402271 EEBABEDABECCADAADEADCABACDDBADCAEBEABBDBACCACDEBBECCBEDCBEECCDCDACBDBCBCACBCCECDDCCACDCEDD
003000045001030617001 5372 #0001 N 201605421 EEEABCDABCBCEEEACEAECABCCDDBABCEEDEABBADACCACDEBBEDCAEDEBBDCCDCDACEEEDCDBCECEEABDDBCCEEDDD
003000046001030617001 5372 #0001 N 141803500 EEBCBDDABDCDAEEADCEAAABCCDECEDEAEDEBBBEEACCACDEBBEECCEDABBECEABDABBECDDBAAAECECBCDCECBAEDD
003000047001030617001 5372 #0001 N 030200501 EEABBEBAADBBBEEADEAECBBCCDEBAACAEBEADBDDBACACDEBBEDCDEDABBECCDCDABAECDDBAAAEEECECDDCCDCCDD
003000048001030617001 5372 #0001 N 040302191 EEDBBEDABDBCADAACEEEDBBCCDEBEACAEDEABBEAACCACDCBBEDCCEDEBEBCCDADABBEEDBBACABCEAEDDBCCBBDDD
003000049001030617001 5372 #0001 N 030200760 EEEBBEDABEBCACAACCBDEABBCDDBAACAEAEABBADAACAEDEBBEDCCEDEBBDCCDCDABBEEDBBECADCEAECDBCCEBEDD
003000050001030617001 5372 #0001 N 020100151 EEEBBEDABDECEDAADCADCABECDDBABCAEDEBDBDEACCADDEBBEACEEDCBBECCDCDABBEEDBBACADCEDBCDBCCEBCDD
003000051001030617001 5372 #0001 N 121604151 EEABBEDABEBCAAEACCBEEABCCDEBACCAEDEABBDEACAACDEBBEDCBEDECBDCCDCDABBEEDBBACEDCEAECDBCCEBEDD
003000052001030617001 5372 #0001 N 030201000 EEDBAECEAEBAAEEADCBBCABACDDBAAAAEBEABBEDCDDDEDCBBEDCCEDABBECDDCDABBEEDBBACEBCEBECDBBCECADD
003000053001030617001 5372 #0001 N 030201301 EEBBBCCAADEDEDBEDCACECBCCDDBACCAEBECDBDCACAAEDEBBEDCCEDCBBBCCDCBABBEDDBDAEAEBEDEDDDCCCBBBD
003000054001030617001 5372 #0001 N 030201040 EEABBEAAEBDBCADCBCEECABCCDDBEADAEAEADBEBACCACDACBECCEEDADBECCDCDABBEDDBDEAACCEDECDBCCDCADD
003000055001030617001 5372 #0001 N 050402221 EEDBBEDAACCDEDBADCBECBBECDEDABCAEBEEDBDDABAACDEBBEACADDDBCACCDCDABAEEDBCABBCEEDEBDBCCBCBEB
003000056001030617001 5372 #0001 N 020200470 EEDBEADABAEBAAABDEEBCABECDEBABCEEBAABBCBBCCACDEBBEACBEDABBEBADDDAEBEECDBBCAECEEEADABCEBAE
003000057001030617001 5372 #0001 N 201605411 EBBBEDABEBCBCEBDEEBCACCCDDBECCEEAEAEBDBACCACDCBBEDCAEDCDEECCDEDAADEEDBBEDAECCDBADCBBEAECBB
003000058001030617001 5372 #0001 N 030201560 EDDBAEDABEBAEDEABDAECABCCDEAECCAEAAAABEEECCACDEBBEDCEEDEBBECCDCDABBEEDBDAAECCEAECDBCCECEDD
003000059001030617001 5372 #0001 N 201606030 EEDBDEDAAABCADEACEACDABCCDDCEBAAEBEABBDBACCACDCBAEDCBEDEBBECCDCDABBEDDDCAEACCEABCDCCCEBEDD
003000060001030617001 5372 #0001 N 152105241 EEABABEABDBCCEEADEACDACADDDBAAEAEAEECBDEACCACDEBBBCCBEDCABECCDCDADBEADBBAEAECEABCDCCCBBEED
003000061001030617001 5372 #0001 N 101403491 EEEBBEDABDBCACAAAEBECABCCDECECCAEAEADBDBACCACDEBBEDCBEDBBBECCDCDABBEEDABDCADCEAECDBCCEAEDA
003000062001030617001 5372 #0001 N 040302080 EEEBBECEAEECAAEADDBEDABCCDDAEADAEBEBDBDBBACACDCBBEACEEDCBECCCDADAABEECCBCCACCECECDBCCCEEDD
003000063001030617001 5372 #0001 N 040301351 EEDBBEDABDBCACBACDEDCABCCDEAAACAEDEAEBCDACDACDABBECCCEDEAEECCDBDABAEEDBEACEACEAACDBCCECBED
003000064001030617001 5372 #0001 N 030203610 EEDBBEBABBBCADEADECCCADECDEBAAAAEABADBDBBCCACDEBBEDCAEDEBBECCDCDABBECDBBBCDDCEDBCDBCCEBEDD
003000065001030617001 5372 #0001 N 141803211 EEEBBDCCADBCACEADECDCABCCDEBEACCEBEEBBBEACAACDDEBEDCBDDABBDCCDCDABCEEDDBACADCEEBCDCCCBDADD
003000066001030617001 5372 #0001 N 071203380 EEDBBEEABBCCAAAADEEEEABCCDEBAACAEAEADBDCACCACDEBBEDCBEDEBBECCDCDABBEEDBDBCEDCEABCDBCCEBEDD
003000067001030617001 5372 #0001 N 020201641 EEABBDBABBCCAEAADDBCCAAACDDBEACAEBEACBDEACAACDCBBCECBEDBABEACDDDABCEADBEACECCECEADEBCBBCAD
003000068001030617001 5372 #0001 N 152100100 EECBBBBAEBCCAEBADCBECABECDDBEACAEBEB B*BDCCECDABBEDCAEDEBBECCDCDABBECDDBACDBCEAECDCCCDBEDD
003000069001030617001 5372 #0001 N 142103851 EEEBAADDBCEBEEBACEBEAABCCDEBBADAEBEADBDDACCACDEBBEDCAEDCBBACCDCDABAEEDAEBBAECEAECDBBCDCECC
003000070001030617001 5372 #0001 N 030200480 EEEBBEDAABBCEABECCAEEABECDDAAACAEAEABBDDBAEACDEBBECCBEDBBBECDDCDABBEEDADACADCEDBCDCCCEBEAD
003000071001030617001 5372 #0001 N 030201261 EEDBBACABAACAEAACEBDEBBCCDDBEBCAEBEBDBDBACCACDEBBEDCBEDEBBECCDCDABCEEDDBACADEEABCDBCCEBEDD
003000072001030617001 5372 #0001 N 201606001 EABBBEDDCABBEDBACEBDEEBACADCAECAEEAEEBDBAACACDBBBEDCBEDBBBCCCDCDACBEEBBBBCABCEBEDDBBCBBEAD
003000073001030617001 5372 #0001 N 040302130 DEABBEBABEEBAAAADCABCABCCDEBAACAEDBBDBDEACCACDEBBEACBEDABBEACDCDABBEEDBBAEADCEABCDBCCEBEDD
003000074001030617001 5372 #0001 N 050405211 EEDBEEBABEBCAAEADCADCABECDDBEBCAEBEADBDDACCACDEBBEDCCEDCBBECCDCDABBEEDBEACEDCEAECDBCBECEBD
003000075001030617001 5372 #0001 N 010100190 EEDBDEBAEEBAEABACEBADABECDDCAAEAEBECBBDDACAACDDEBEACBEDCBBEACDCEABBEEDDCACADCEABAAECCBCEEC
003000076001030617001 5372 #0001 N 020100290 ECDBDACDEBECAEBADCACCABCCDDBABCAEBECBBDBECCACDEBBEDCBEDABBECCDCDABBEEDDBACECCEAECDBCCECAAD
003000077001030617001 5372 #0001 N 020201231 BEDBCACABDACECECDCBCCBBCCEDBEACAEBEBBBDEACCAEDCBBCDCCEDBCACAABACCBACABABACBABBABCACACBBDBA
003000078001030617001 5372 #0001 N 010100100 ADCBDEBAECBBADCCDDAEDACCEDDBCDCADBCEABDBABCCCDACBEDCEEDA BECCDCDABCEDBDEACAECEAEDDACCECEDB
003000079001030617001 5372 #0001 N 040302140 EEDBBECABABCAAEADEADEABBCDDBAAAAEAEECBDEACCACDEBBEDCBEDCEBACCDCDABEEEDDBDCADCEAECDDCCEBEDD
003000080001030617001 5372 #0001 N 020100320 EDDBDEDAADECEEECDDADCABCCDDBEBCAEAEABBDBACCACDCBBEDCBEAEBBDCCDCDABBEEDBBACADCECBCDBCCEBAAC
class GabaritosController < ApplicationController
def envio_gb_oficial
@provas = Prova.sem_gabarito_oficial
@prova = @provas.find(params[:provas]) rescue nil
@upload = params[:arquivo]
if(@upload.respond_to?(:read))
@linhas = @upload.read
@parsed_line = @linhas[53..@linhas.rstrip.size].strip.split(//)
puts @parsed_line.inspect
@parsed_line.each_with_index do |resposta,questao|
@questao = questao
@resposta = resposta
@prova.gabaritos.build(questao: @questao+1, resposta: resposta)
end
@prova.gabarito_oficial_enviado = 'S'
@prova.save!
render "gabaritos/gabarito_oficial_enviado"
elsif(@upload.respond_to?(:path))
puts "responde a arquivo? #{@upload.respond_to?(:path)}"
else
logger.error " Arquivo em formato errado #{@upload.class.name} :: #{@upload.inspect} "
end
rescue => e
redirect_to gabaritos_envio_gb_oficial_path, alert: "Não foi possível enviar este gabarito! Por favor, tente novamente."
end
def envio_gb_aluno
@provas = Prova.sem_gabarito_alunos
@prova = @provas.find(params[:provas]) rescue nil
@upload = params[:arquivo]
@qtde_alunos = 0
if(@upload.respond_to?(:read))
@linhas = @upload.read
@linhas.each_line do |line|
next if line.blank?
ra_normal = line[40..47]
ra_formatado = line[40..47].scan(/.{1,4}/).join('-')
questoes = line[53..@linhas.rstrip.size].split(//)
questoes.each_with_index do |resposta,questao|
if(ra_formatado.starts_with?('20'))
ra_formatado
print "RA Normal: #{ra_normal} - RA Formatado: #{ra_formatado}\nRespostas: #{questoes}\n"
else
if(ra_formatado[2..2].include?('0'))
ra_formatado[2..2] = "I"
print "RA Normal: #{ra_normal} - RA Formatado: #{ra_formatado}\nRespostas: #{questoes}\n"
elsif(ra_formatado[2..2].include?('1'))
ra_formatado[2..2] = "F"
print "RA Normal: #{ra_normal} - RA Formatado: #{ra_formatado}\nRespostas: #{questoes}\n"
elsif(ra_formatado[2..2].include?('2'))
ra_formatado[2..2] = "M"
print "RA Normal: #{ra_normal} - RA Formatado: #{ra_formatado}\nRespostas: #{questoes}\n"
end
end
@questao = questao
@resposta = resposta
@prova.gabarito_alunos.build(matri_ra: ra_formatado, questao: @questao+1, resposta: @resposta)
end
@qtde_alunos += 1
end
@prova.gabarito_alunos_enviado = 'S'
@prova.save!
render "gabaritos/gabarito_aluno_enviado"
elsif(@upload.respond_to?(:path))
puts "responde a arquivo? #{@upload.respond_to?(:path)}"
else
logger.error " Arquivo em formato errado #{@upload.class.name} :: #{@upload.inspect} "
end
rescue => e
redirect_to gabaritos_envio_gb_aluno_path, alert: "Não foi possível enviar este gabarito! Por favor, tente novamente."
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment