Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Miranda

Ler e comparar char por char

Recommended Posts

Olá pessoal,Já postei em JAVA Básico, mas a galera de lá não está colaborando muito, então desculpe se ver dois tópicos iguais. :D O meu problema é o seguinte:Estou querendo comparar dois arquivos .txt, um digamos que seja o gabarito e o outro é o arquivo a ser comparado para ver se está certo ou não.O arquivo "gabarito" pode conter no máximo 108 caracteres, sendo que os 8 primeiros são números e o resto letras maiúsculas. EX: 01234567ABCABCABCABACABACABACBACABACABCAB.......<EOL><EOF>.<EOL> é end of line e <EOF> é end of file.Pois então, como faço para ler char por char do arquivo "gerado" e comparar com o arquivo "gabarito"??Obrigado pela atenção.Abraço...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal,Então, eu tenho o gabarito em formato txt e tenho uma leitora de cartões de gabarito que lê os cartões e gera o número de inscrição do candidato e suas respostas (Ex.: 01234567ABCDEABCDEABCDE.....e assim vai). São 100 questões na prova e 8 números da inscrição, e esses arquivos gerados também estão em formato txt.Gostaria de saber como eu poderia comparar o meu gabarito em txt com os arquivos gerados pela leitora também em txt.Muito obrigado pela ajuda, vocês são demais.Bruno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, vou dar uma resposta aqui da minha cabeça, você depois vê como põe no código.Primeiro você deve dizer onde está o arquivo txt

File file = new File("/gabarito/arquivo.txt");

no caso acima o arquivo texto está numa pasta gabarito abaixo do diretório atual do sistema de arquivos. Se tiveres problemas em achar o arquivo avise, mas acho que esse comando é o suficiente.Ops:. Em windows vais ter que usar \\ porque o sistema operacional confunde o barra com escape. ok? --- lembre que se o arquivo não existir o erro não vai ser dado nessa linha, o que acontece é que file recebe null. Talvez tenhas que usar try catch depois, quando usar o objeto file, ou, caso prefira, podes usar os métodos exists(), isDirectory() e isFile() --- fica a gosto do cliente.Agora para ler o arquivo você usa a classe FileReader, vais ter que importar java.io.FileReader;

FileReader reader = new FileReader(file);

instancie um BufferedReader que possui a funcao readLine().

BufferedReader buffer = new BufferedReader(reader);

agora leia e salve em uma string.

String auxLinha = null;String linha = "";while((auxLinha = buffer.readLine())) { linha += auxLinha;}

beleza, agora já estais com a faca e o queijo na mão só falta um looping em linha e comparar char a char com o seu gabarito, que também deve estar em um objeto string de nome tal.

int ponto = 0;for (int i = 0; i < linha.length(); i++){ char gabarito = linha.charAt(i); char minhaResposta = tal.charAt(i); if (gabarito == minhaResposta){ pont++; }}

Ao final desse código você terá na variável ponto o número de caracteres iguais. Como não sei o formato do arquivo texto, não sei os números e as letras significam o resto é com você, mas acho que com essa explicação você já resolve facilmente o seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.