Ajuda com split

3 respostas
D

Ola Pessoal,
estou precisando ler um arquivo de log, e grava-lo em um banco de dados, ate aí tudo bem, o problema que esse arquivo nao tem um padrao exemplo:

[telefone removido].678    654 192.168.0.51 TCP_MISS/200 13075 GET [url]http://anuncio.clicrbs.com.br/OasDefault/calhau/disquesim_full.swf?[/url] - DIRECT/200.96.99.9 application/x-shockwave-flash   
[telefone removido].187   1485 192.168.0.51 TCP_MISS/200 17047 GET [url]http://www.clicrbs.com.br/jornais/zerohora/jsp/default2.jsp?[/url] - DIRECT/200.96.99.8 text/html   
[telefone removido].179     85 192.168.0.51 TCP_MISS/200 622 GET [url]http://www.clicrbs.com.br/jornais/zerohora/jsp/geraParteResposta.jsp?[/url] - DIRECT/200.96.99.8 image/png

o segundo campo é o tempo em segundos e varia tamanho, estava
entao pensei em usar o metodo split onde eu pego e jogo novamente para uma outra variavel separando #, exemplo da primeira linha acima:

[telefone removido].159#65#192.168.0.51#TCP_MISS/200#621#GET#http://www.clicrbs.com.br/jornais/zerohora/jsp/geraParteResposta.jsp?#-#DIRECT/200.96.99.8#image/png#

usando o seguinte codigo:

<%   
    FileReader fr = new FileReader("c:\access.log");   
    BufferedReader br = new BufferedReader(fr);   
    String linha, nomarq, result="No teve sorte... oi...";   
    while ( (linha=br.readLine()) != null){   
        String[] arr = linha.split(" ");   
        String saida = null;   
        int nro = arr.length;   
        for (int x=0; x<nro; x++){   
            if (!arr[x].equals("")){   
                saida = arr[x] + "#";   
                out.print(saida);    
            }   
        }   
               
        out.print("<br><br>");   
    }   
        br.close();   
    %>

agora, como posso manipular a variavel saida e gravar ela em uma tabela?

obrigado

3 Respostas

cv1
  1. Pare de usar JSP pra fazer isso.
  2. Aprenda a trabalhar com expressoes regulares.
  3. Leia sobre MVC.

:wink:

georgesq

se vc já tem o conteúdo que espera, ql o problema para gravar o mesmo? não entendi.

Roger75

O que o cv está falando é que você deve evitar usar scriptlets dentro da JSP. Isto é uma prática não recomendada, pois gera problemas de manutenção, etc.

Quanto ao seu problema, não entendi ao certo a sua dúvida. Se você conseguiu colocar os dados no seu array agora você deve apenas jogar os dados na tabela do banco. Para isso você pode usar uma classe DAO.

Criado 17 de janeiro de 2007
Ultima resposta 17 de jan. de 2007
Respostas 3
Participantes 4