Pegando a saida de um programa ?!

4 respostas
RicardoCobain

Olá galera , gostaria de saber como pegar a saida de um programa(Ping)
mas com os acentos e caracteres especiais !!

tipo: na saida do ping tem a seguinte linha:
Mínimo = 0ms, Máximo = 0ms, Média = 0ms
Mas quando capturo ela fica assim:
M¡nimo = 0ms, M ximo = 0ms, M‚dia = 0ms

Process p = Runtime.getRuntime().exec("ping 192.168.1.12");
InputStream in = p.getInputStream();
BufferedReader out = new BufferedReader(new InputStreamReader(in));
while ((linha = out.readLine()) != null){
                linha = linha.toString();
    System.out.println(linha);
}
p.destroy();

Tem como pegar os acentos e tls ?!

E outra, tem como aplicar umas mascara de formatação para um ComboBox ?!

4 Respostas

ViniGodoy

Seu objetivo é dar um ping?

Não é melhor só usar o método isReacheable da classe InetAddress?

//Tentamos achar o host por 2 segundos boolean pinged = InetAddress.getByAddress("192.168.1.12").isReacheable(2000);

O legal é que ele tenta um ping, se não der ele parte para um teste de eco na porta TCP 7.

RicardoCobain

Ahhhh vlw…
Eu tinha tentado isso , mas n tava dando certo… Mas ta dando agora !!! … heheh

Mas o legal do ping é que elemostra as estatísticas…

Mas a duvida ainda fica, tem como pegar os caracteres especiais(acentos, etc…) na saida ?!

ViniGodoy

O problema é que existem dezenas de tabelas ascii, praticamente uma para cada idioma. Teria que achar o encoding da nossa tabela e fazer um decodificador. Uma forma fácil (já que são poucos simbolos), é realmente montar um map e fazer a conversão byte-a-byte.

RicardoCobain

É …
Mas eu descobri um modo mais facil, é so especificar o código de página do DOS , que é o 850…
vlw…

Process proc = Runtime.getRuntime().exec(PingCMD); InputStream iS = proc.getInputStream(); BufferedReader bReader = new BufferedReader(new InputStreamReader(iS, "850"));

Criado 4 de julho de 2007
Ultima resposta 13 de jul. de 2007
Respostas 4
Participantes 2