Oi pessoal. De cara, já devo dizer que sou iniciante em Java, então, tenhma paciência. Me pediram um programa no trabalho e gostaria de
uma orientação de como fazê-lo. Seguinte: Nosso relógio de ponto grava a entrada dos funcionários em um arquivo de
texto, que então é levado a um computador onde um progrma fará a leitura do mesmo, associará a matrícula do
funcionário no arquivo de texto com as informações do mesmo em um banco de dados e então gera o relatório com a
frequência mensal, mostrando o dia da semana, dia do mês, hora de entrada e de saída. Mas este programa não está
mais fazendo essa associação (o motivo eu desconheço) e agora querem que eu faça um novo programa para a geração
desse relatório. Então, como devo fazer?
Leitura de arquivo TXT e associação de informações com banco para geração de relatório
10 Respostas
O que vc não sabe exatamente? O que você já fez?
Eu tenho as informações dos funcionários, horas extras numa base DBF (o programa foi feito em clipper) e preciso fazer o java ler o arquivo txt que sai do relógio de ponto, que tem a matrícula dos funcionários e associar com essas tabelas dbf para que seja gerado o relatório com as batidas de cada funcionário, entendeu?
Sim, entendi.
Mas disso tudo aí, o que vc não sabe fazer?
Absolutamente nada?
Sorry… bom, o que eu penso em fazer é criar uma classe que leia o arquivo txt vindo do relógio e faça a associação com os dados dos funcionários no banco, mas como faço pra acessar essas informações que estão em DBF? Se fosse um banco MySQL eu saberia. Terei que importat para MySQL? Fiz uma pesquisa a respeito de acesso a DBF via Java mas não encontrei nada que me ajude, pelo menos nada free…
É, isso é um problema mesmo. Já ouvi falar de gente que usa esse aqui:
http://www.hxtt.com/dbf.html
Mas não sei o quão bom ele é.
Talvez seja possível usar uma conexão ODBC também, e fazer através da ponte JDBC/Odbc.
Eu consegui importar para o MySQL mesmo, achei que seria mais simples e realmente foi. Bom, já tenho a base de referência em um banco que posso acessar tranquilamente pelo java, mas me deparei com outra coisa. Consegui criar uma classe para a captura do arquivo txt que sai do relógio de ponto, mas como faço pra lançar esses dados em uma tabela no banco, pois eles estão todos juntos, tipo:
matrícula dia ano entra sai
20090001110108011701
criei uma tabela no banco com esses campos pra receber os dados, mas como definir que no campo matrícula só entra os 8 primeiros caracteres, os próximos 4 são dia e ano e assim por diante?
Você pode usar o método substring, da classe string, para fazer a separação. E os método Integer.parseInt, Double.parseDouble para converter dados em tipo mais apropriados.
Boa Tarde,
Pode fazer uma coisa deste genero.
String exemplo = "201012321234";
System.out.println(exemplo.substring(0, 4));
System.out.println(exemplo.substring(4, 8));
System.out.println(exemplo.substring(8, 12));
Ok, vou tentar fazer isso, depois digo o que deu, rsrs. Obrigado pela ajuda até aqui pessoal!!
Pessoal, ficou assim:
public static void entradaDeDados(String[] args) {
try {
File file = new File("C:\\Users\\Aurin\\Desktop\\Relogio de ponto\\movimento.txt");
FileInputStream in = new FileInputStream(file);
Scanner scanner = new Scanner(in);
while (scanner.hasNext()) {
String readLine = scanner.next();
System.out.println(readLine.substring(0,8) + " - "
+ readLine.substring(8,10) + "/" + readLine.substring(10,12)+
"/" + readLine.substring(12,14) + " - " + readLine.substring(14,16) +
":" + readLine.substring(16,18) + ":" + readLine.substring(18,20));
}
} catch (Exception e) {
e.printStackTrace();
}
mas fiquei pensando, como vou jogar esses dados que consegui ler em separado numa tabela no banco de dados? Eu não os armazenei em nenhuma variável, então como vou fazer isso?