PDA

Ver la versión completa : Ayuda "URGENTE" Java



otto_xd
09/11/2008, 21:48
Buenas.

Estoy liado con una practica que tengo que entregar mañana (siempre me pilla el toro) en java y mas o menos tengo todo el pseudocodigo y el codigo que tengo que reutilizar de otras practicas anteriores.

El problema es que he buscado por internet y no se como puedo leer en java de una cadena de caracteres los caracteres "CR LF" o la cadena "CRLF.CRLF", y es condicion de un bucle para leer los mensajes que me envia un servidor POP3, asi que tengo que leerlo si o si.

Lo unico que he encontrado es que java no puede leer ni comparar contra esos caracteres, asi que ando un poco perdido...

Alguien sabe como puedo leerlos o compararlos con la cadena?

Saludos y muchas gracias!

PharaOnyx
09/11/2008, 22:07
Imagino que si los quieres leer 'a pelo' es porque la solución de hacer un BufferedReader y leer línea por línea con readLine() no te vale, ¿verdad?

Saludos, Alex

^MiSaTo^
09/11/2008, 22:11
Imagino que si los quieres leer 'a pelo' es porque la solución de hacer un BufferedReader y leer línea por línea con readLine() no te vale, ¿verdad?

Saludos, Alex
Me lo has quitado de la boca ^^

otto_xd
09/11/2008, 22:24
El problema es que tengo que leer linea a linea en un bucle hasta que llegue un "CRLF.CRLF" y la siguiente linea sea ".CRLF", asi que tengo que saber que me esta llegando eso exactamente.

Es decir, con readLine leo hasta un CRLF, pero entonces tendria despues . y despues punto, no??

De ser asi podria hacerlo, en plan, leo, comparo con punto, comparo con punto :S

Esto lo he sacado del rfc 1939, que es el servidor pop3, por eso la necesidad de saber que han llegado esos caracteres especiales

Gracias

pakoito
09/11/2008, 22:26
jjajajajajaj el primer problema que tuve yo con java. Crea una TxtBox o algo así y úsala para recoger la información.

otto_xd
09/11/2008, 22:28
jjajajajajaj el primer problema que tuve yo con java. Crea una TxtBox o algo así y úsala para recoger la información.

SaiWat? xD

Enserio, tengo creada una **** maquina de estados, pero no se como hacer eso, me siento inutil :S

pakoito
09/11/2008, 22:31
Estoy buscando mis primeros ejemplos a ver si lo encuentro.

EDIT: prueba con un

import javax.swing.JOptionPane;

NOESTOYSEGURODEQUE = JOptionPane.showInputDialog("TEXTO TEXTO TEXTO").toCharArray()[0]-48;

ó

int entero = Integer.parseInt(JOptionPane.showInputDialog(""));

otto_xd
09/11/2008, 22:38
Estoy buscando mis primeros ejemplos a ver si lo encuentro.

EDIT: prueba con un

import javax.swing.JOptionPane;

taltal = JOptionPane.showInputDialog("TEXTO TEXTO TEXTO").toCharArray()[0]-48;

¿?

Estoy perdido en java, pero eso no es para la parte grafica del mismo??

< - >
Por cierto, gracias ^^

pakoito
09/11/2008, 22:38
Hace ambas funciones, saca una caja de diálogo y te devuelve lo que le aceptes.

Le he hecho ya un edit.

EDIT: Al primero que malmeta a mi Java que sepa que no he trabajado con Swing, eso lo se de refilón.

otto_xd
09/11/2008, 22:43
mmm, creo que no me he explicado, yo creo un cliente que hace una conexion tcp con un servidor, y este me manda por un buffer linea a linea todas las respuestas.

El problema es que hay respuestas de mas de una linea, y para detectarlas tengo que saber que al final me llega el CRLF.CRLF, solo eso, comparar el final de la cadena con eso... pero no se me ocurre como hacerlo :S

Saludos, y si, no me entero de nada xD

pakoito
09/11/2008, 22:45
Especifica de dónde leías, que creía que era de teclado :p

Nathrezim
09/11/2008, 22:48
A lo mejor con un simple stringTokenizer con /n te vale.

otto_xd
09/11/2008, 22:50
Siento la confusion

He pensado que como CRLF es fin de linea, con hacer readline() sobre el correspondiente buffer, ire sacando linea a linea.

Con comparar con ".", si se da esta condicion dos veces, ha terminado de enviar, ya que es CRLF.CRLF y despues otro .CRLF, es decir, leeria:
cadena
.
.

SAludos!

^MiSaTo^
09/11/2008, 22:52
A lo mejor con un simple stringTokenizer con /n te vale.

En ese caso que no lo lea con el readLine() de un buffered reader porque se lo salta ;)
otto puedes poner con qué clase lo estás leyendo?

otto_xd
09/11/2008, 22:56
Al final me voy a declarar un buffer reader sobre un imput stream reader sobre la accion de socket.getimputstream, de forma que puedo usar el readline, devolviendome pequeños fragmentos que me sirven para comparar:

iBuffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
recibido=iBuffer.readLine();
//y ahora comparo lo recibido con un .

Saludos y gracias

^MiSaTo^
09/11/2008, 22:57
Al final me voy a declarar un buffer reader sobre un imput stream reader sobre la accion de socket.getimputstream, de forma que puedo usar el readline, devolviendome pequeños fragmentos que me sirven para comparar:

iBuffer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
recibido=iBuffer.readLine();
//y ahora comparo lo recibido con un .

Saludos y gracias

Los Buffered-loquesea son casi siempre la mejor solución ;)

otto_xd
09/11/2008, 23:05
Gracias a todos, espero que ahora todo lo que he diseñado funcione... a la primera xDDDDD