![]() |
problemas para validar el "enter" chr(13)
hola que tal
tengo problemas para que me acepte el enter, estoy queriendo validar el enter cuando a un texto le das enter al final del renglon if (Pal[k]=chr(13)) then se supone que ahi deveria entrar cuando el espacio ahi un enter pero no entrar y ya le probe con otras forma por ejemplo: if (Pal[k]=#13) then y tampoco me entra si alguien me puede auxiliar se los agradeceria de hantemano gracias (: |
Cita:
En que evento queres "validar" el enter? |
hola que tal
un texto en un memo por ejempplo: program ejemplo; uses crt; var <----- aqui es fin del renglon y ahi un enter entonse no lo puedo validar s:integer; grax de antemano |
En un memo no hace falta "validar" el enter. Podes basarte en su propiedad Lines, del tipo TStringList. Evidentemente, habrá un retorno de carro y avance de línea al final de cada string contenido en esta propiedad.
Hasta luego. ;) |
Cita:
La idea es que puedes acceder a cualquier línea como si fuera un array de cadenas, puedes intercambiar las cadenas, insertar, eliminar, etc. Me ayudo mucho en mis trabajos para la universidad, lo usaba como reemplazo al modo "consola", para desplegar mensajes. Me gustaba ver como los programas de mis compañeros hechos en Visual C++ corrían más lento que los mios hechos en Delphi. Ahh y el fin de linea a veces es #10+#13 o era #13+#10 ? |
Tengo entendido que en windows... la sentencia correcta debe ser CR+LF (carriage return, line feed). => #13 + #10
Hasta luego. ;) |
Cita:
// Saludos |
hola que tal
gracias por responde.. pero todavia sigo teniendo problemas no me funciona el #13+#10 los hise en un case case pal[k] of chr(13+10): // enter begin matriz[inicio,9]:='100'; inicio:=(strtoint(matriz[inicio,9])) end; tambien asi: con un if if (Pal[k]=#13+#10)then begin matriz[inicio,9]:='100'; inicio:=(strtoint(matriz[inicio,9])); end; segui el comentario que me dieron pero no me a funcionado. no se a podedido entrar ni en el case ni en el if de hante manos gracias |
creo que no va a ser posible ayudarte mientras no des mas detalles de lo que queres hacer y con que componentes y/o eventos.
Me parece que no has leido mi primer mensaje. :mad: |
Este hilo ha sido poco claro desde el comienzo.
Desde el principio el compañero jachguate te preguntó en qué evento querías "validar el enter" y tu respuesta Cita:
Hasta ahora no nos hemos enterado qué cosa es la variable pal. Tanto si estás validando al momento de escribir o bien el texto ya escrito, el papel de esta variable es un misterio. Si es otra cosa lo que estás intentando tendrás que aclararnoslo para que podamos saber de qué hablas. Por el momento sólo te puedo decir que en Windows las líneas de un archivo de texto están marcadas por la secuencia de dos caracteres: #13 y #10. Una comparación con Chr(13 + 10) será siempre falsa ya Chr(13 + 10) es lo mismo que Chr(23), es decir, un sólo caracter (el de código ASCII 23) que nada tiene que ver con el retorno de carro o el avance de línea. Te recomiendo que le des una pensada al asunto y vuelvas a expresar tu duda de forma más clara. // Saludos |
oks disculpen
pal es una variable que contiene lo siguiente: Pal:=(memo1.Lines[numero]); k es la variable de la posicion del caracter con esto hagarro todo lo que esta escrito en el renglon y lo voy comparando hasta formar un token incrementado uno por uno con la variable "k" que empiesa de cero hasta el ultimo caracter del renglon. longitud:=length(memo1.Lines[numero]); <-- total de longitud del renglon esto lo hago para el fin de separar las palabras separadas por espacion punto y comas comas y enter esto da el fin de token ya dado el fin de token hagarro el token y lo comparo con palabras y simbolos que tengo en lisbox Token:= token +(Pal[k]); <-- aqui sumo el caracte que va en la posiscion inc(k); el unico problema que he tenido al haser un token es cuando ahi un enter o fin de renglon, que es lo que le e venido preguntado por ejemplo: program ejemplo; uses crt; var s:integer; los token program, ejemplo, punto y coma, uses , crt, s,dos puntos, integer no tengo problemas al que ser compar "var" es donde tengo problemas por que enseguida ahi un enter o fin de renglon entonses al querere con parar el caracter que sigue para ver si es fin de token es lo que no he podido validar que seria if (pal[k]= #13) the se supone que ahi deveria entrar =S a la condicion para llenar la matriz de transicion donde meto el valor de enter matriz[inicio,9]:='100'; inicio:=(strtoint(matriz[inicio,9])); cuando token su valor es "var" se inc(k) entonses k ya es = a 4 esto seria lo que sigue despues del caracter "r" del token "var" que es lo que puse anteriormente Token:= token +(Pal[k]); <-- inc(k); bueno gracias espero ver sido mas claro =S |
Ves que hablando se entiende la gente...
Si lo que tenes es un string... ese string nunca va a tener un enter. Simplemente "termina" donde hubo un cr+lf en el archivo (o la fuente del memo). Lo unico que tenes que verificar es que k no sea mayor a la longitud de pal, y si ya lo es, lo que tenes en Token es el último token de la línea (o un token vacio). Hasta luego. ;) |
Además de lo que te dice el compañero (trasnochado) jachguate, me parece que de no haber abandonado el tema texto en un MEMO ...encontrar comparar podrías haber llegado más rápido a algo así como:
Código:
var // Saludos |
hola gracias me a servido mucho su ayuda
roman con esa forma el unico problema que he tenido es que los apostrofes no aparesen me los ignora y no e podido haser que me los despliegue ahi alguna forma? de hante mano gracias :) |
La franja horaria es GMT +2. Ahora son las 10:08:32. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi