Urgente

7 respostas
K

To fazendo um programa que tem que ler um arquivo de Log, consegui fazer ler o arquivo, mas não consigo separa o usuário, nem máquina. peço ajuda para fazer isso.

Segue um exemplo do arquivo de Log

10/01/2004 18:00 Estranho Turing
10/01/2004 18:00 Paulo Turing
11/01/2004 12:30 Joao Knuth
11/01/2004 18:45 Alencar Einstein
12/01/2004 11:47 Maria Pascal
12/01/2004 12:00 Joao Turing
12/01/2004 13:32 Joao Einstein
13/01/2004 10:45 Pedro Knuth
13/01/2004 10:47 Maria Pascal
13/01/2004 11:11 Joao Pascal
13/01/2004 11:45 Alencar Einstein
13/01/2004 14:17 Paulo Turing
14/01/2004 12:47 Joao Pascal
14/01/2004 14:00 Alencar Turing
14/01/2004 17:30 Pedro Turing
15/01/2004 21:45 Joao Knuth
15/01/2004 22:47 Alencar Einstein
17/01/2004 18:00 Alencar Turing
19/01/2004 12:30 Pedro Einstein
19/01/2004 18:45 Paulo Turing
20/01/2004 11:47 Joao Einstein
20/01/2004 12:00 Pedro Pascal
20/01/2004 13:32 Maria Pascal
21/01/2004 10:45 Alencar Knuth
22/01/2004 10:47 Joao Knuth
22/01/2004 11:11 Pedro Einstein
22/01/2004 11:45 Pedro Knuth
22/01/2004 14:17 Joao Einstein
25/01/2004 12:47 Pedro Knuth
25/01/2004 14:00 Maria Turing
25/01/2004 17:30 Alencar Turing
27/01/2004 21:45 Joao Knuth
27/01/2004 22:47 Alencar Turing

7 Respostas

J

O log é o teu programa que gera ou é de terceiro?
Pq o ideal é vc especificar um tamanho na gravação de cada campo ou então criar um separador.
Assim o seu log sairia:

10/01/2004 18:00 Estranho Turing 10/01/2004 18:00 Paulo Turing 11/01/2004 12:30 Joao Knuth * repare os espaços completando o tamanho do nome de usuário

ou então, por ex.:

10/01/2004*sep*18:00*sep*Estranho*sep*Turing 
10/01/2004*sep*18:00*sep*Paulo*sep*Turing 
11/01/2004*sep*12:30*sep*Joao*sep*Knuth

Na primeira vc separa os campos sabendo em que posição cada um começa e termina, no segundo separa pelo seu “código” separador.

Não sei se tem outro tipo de solução mais “profissional”.

cya

J

Agora, nessa listagem em específico não há espaços nos nomes de usuários. Se isso for padrão no seu log basta vc usar o split usando o espaço como separador.

K

Este log é de terceiros, portanto não posso alterar sua estrutura fisica, e como o JavaDrops os usuarios só possuem um nome portanto é possivel utilizar o espaço como separador. Mas como ficaria o codigo fonte para a separação destes dados?

Obrigado pela ajuda desde já!!!

J

se voce tiver certeza que esse formato vai sempre acontecer, faça um split(" ") e pegue:
1a posicao do array - data
2a posicao do array - hora
3a posicao do array em diante - nome

flw

K

ok, desculpe mas infelizmente ainda não entendi como utilizar o comando split!!!

Será que poderia me dar um exemplo em código fonte de como eu utilizaria este comando???

Atenciosamente kikofr

E obrigado desde já

J

class Splitlog { public static void main(String args[]) { String linhalog = "10/01/2004 18:00 Estranho Turing"; String splitlogs[] = linhalog.split(" "); System.out.println("O nome do usuario eh " + splitlogs[2] + " e o acesso foi no computador " + splitlogs[3]); } }

J

“kikofr”:
ok, desculpe mas infelizmente ainda não entendi como utilizar o comando split!!!

Será que poderia me dar um exemplo em código fonte de como eu utilizaria este comando???

Atenciosamente kikofr

E obrigado desde já

cara, o split pega uma string e separa ela em varias strings, a partir de um criterio de separacao.
exemplo, se eu tenho uma frase:
“entender o funcionamento do metodo split eh bem facil”
e quiser separar cada palavra dessa string, qual criterio de separacao voce usaria? eu escolheria separa-la pelos espacos, assim, eu fa;o:

retornoDeSplit = "usar split eh bem facil".split(" "); //atente que isso(parametro do metodo) eh um espaco

o resultado seria um conjunto, um array de Strings:

espero que tenha entendido

Criado 16 de junho de 2005
Ultima resposta 17 de jun. de 2005
Respostas 7
Participantes 3