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
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
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
JavaDropsPJ
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
kikofrPJ
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
javaAdictedPJ
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
kikofrPJ
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
JavaDropsPJ
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
javaAdictedPJ
“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: