Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2004
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
Question 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 (:
Responder Con Cita
  #2  
Antiguo 12-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por sakuragi
cuando a un texto le das enter al final del renglon
Que componente es "un texto"????

En que evento queres "validar" el enter?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 12-03-2004
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 12-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 12-03-2004
Amilius Amilius is offline
No confirmado
 
Registrado: ene 2004
Posts: 138
Poder: 0
Amilius Va por buen camino
Cita:
Empezado por jachguate
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.
Poderoso el TStringList.

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 ?
Responder Con Cita
  #6  
Antiguo 12-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Tengo entendido que en windows... la sentencia correcta debe ser CR+LF (carriage return, line feed). => #13 + #10

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #7  
Antiguo 12-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Amilius
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.
Con todo lo que me gusta Delphi honestamente creo que la lentitud de los programas de tus compañeros se debió más a la forma de programar que al lenguaje en sí.

// Saludos
Responder Con Cita
  #8  
Antiguo 16-03-2004
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
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
Responder Con Cita
  #9  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Thumbs down

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.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 16-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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:
Empezado por sakuragi
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
es ambigua. No se sabe si quieres quieres ver la existencia de un retorno de carro al momento de que se escribe o si mas bien quieres buscar retornos de carro en un texto ya existente.

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
Responder Con Cita
  #11  
Antiguo 16-03-2004
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
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
Responder Con Cita
  #12  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #13  
Antiguo 16-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
  MemStream: TMemoryStream;
  Parser: TParser;
  Token: Char;
  Line: Integer;

begin
  MemStream := TMemoryStream.Create;
  Memo1.Lines.SaveToStream(MemStream);
  MemStream.Seek(soFromBeginning, 0);
  Parser := TParser.Create(MemStream);

  Line := 1;
  repeat
    while Line < Parser.SourceLine do
    begin
      Memo2.Lines.Add('<cr>');
      Inc(Line);
    end;

    Memo2.Lines.Add(Parser.TokenString);
  until Parser.NextToken = toEof;

  Parser.Free;
  MemStream.Free;
end;
que te separa en tokens (retornos de carro incluídos) el texto en Memo1 y los coloca como una lista en Memo2.

// Saludos
Responder Con Cita
  #14  
Antiguo 19-03-2004
Avatar de sakuragi
sakuragi sakuragi is offline
Miembro
 
Registrado: feb 2004
Ubicación: root
Posts: 1.435
Poder: 22
sakuragi Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:37:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi