Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-01-2007
Oibafrufat Oibafrufat is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
Oibafrufat Va por buen camino
Problemas de seguimiento en una sentencia IF

Buen día

Les comento: trabajo la versión 6 de Delphi y en los últimos días he tenido problemas con en ciertas sentencias IF, las cuales al hacer un seguimiento paso a paso siendo la condición verdadera, ingresa por la misma y una vez termina, sigue por la falsa, agradecería si alguien tiene alguna respuesta lógica al respecto.

if i<ListaPalabras.Count-1 then
pasa aki temp := temp + ' ' + ListaPalabras[i]
else
y pasa x aki break;

Última edición por Oibafrufat fecha: 26-01-2007 a las 17:48:04.
Responder Con Cita
  #2  
Antiguo 26-01-2007
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 21
Enan0 Va por buen camino
Hola.
Mira esa sentencia IF no tienen nada de raro. al ver el break inmagino que esta dentro de un bucle For, lo cual tambien le da Sentido al I

Estaria bueno si pegas un poco mas de Codigo. porque esa sentecia aparentemente anda perfecto.

tambien estaria bueno que comentes ListaPalabras que tipo de componente es.

Saludos
Responder Con Cita
  #3  
Antiguo 27-01-2007
Oibafrufat Oibafrufat is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
Oibafrufat Va por buen camino
Agradezco tu respuesta, tal vez como es mi primera vez, me hace falta ser más dinámico en mis comentarios.... imaginate. tal vez no es la sentencia, sino que delphi en otras sentencias if.... hace su paso por la parte falsa y la verdadera al mismo tiempo, efectivamente esto hace parte de un bucle
Código Delphi [-]
           while true do
           begin
             CodEqMzVal := Geo.RetornaCodigoEqMzVal(QGeoVarios,temp,Ciudad);
             if CodEqMzVal <> '' then
             begin
               CodEqMzValOk := CodEqMzVal;
               CodMzNivOk := Geo.RetornaNivelYNomMzVal(QGeoVarios,CodEqMzValOk,Ciudad,NomMzVal);
               NivelOk := Geo.RetornaNivelMzNiv(QGeoVarios,CodMzNivOk,Ciudad,NombreNivel,SiTabla);
               iok := i;
               i := i+1;
               if i < ListaPalabras.Count-1 then
                 temp := temp + ' ' + ListaPalabras[i];
               else
                 break;
             end
             else
             begin
               i := i+1;
               if i < ListaPalabras.Count-1 then
                 temp := temp + ' ' + ListaPalabras[i]
               else
                 break;
             end;
           end;
Mira yo le doy vueltas y vueltas y no entiendo xq sucede y no es en la única parte que pasa. hace esto en el primer if y pasa normal por el segundo...

ListaPalabras es un TStringList, en el cual almaceno las palabras de una frase.

Espero haberme hecho entender... gracias...

Última edición por vtdeleon fecha: 27-01-2007 a las 01:37:20.
Responder Con Cita
  #4  
Antiguo 27-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo no le veo sentido, ¿acaso este código no es el mismo?
Código Delphi [-]
           while true do
           begin
             CodEqMzVal := Geo.RetornaCodigoEqMzVal(QGeoVarios,temp,Ciudad);
             if CodEqMzVal <> '' then
             begin
               CodEqMzValOk := CodEqMzVal;
               CodMzNivOk := Geo.RetornaNivelYNomMzVal(QGeoVarios,CodEqMzValOk,Ciudad,NomMzVal);
               NivelOk := Geo.RetornaNivelMzNiv(QGeoVarios,CodMzNivOk,Ciudad,NombreNivel,SiTabla);
               iok := i;
             end;
             i := i+1;
             if i < ListaPalabras.Count-1 then
               temp := temp + ' ' + ListaPalabras[i];
             else
               break;
           end;

igual el optimizador de delphi hace algo por el estilo.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 27-01-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
El "While True", sólo lo utilizaría si es estrictamente necesario, y en este caso no lo es, creo que así te quedaría más claro, y evitarías tener que usar un break.
Código Delphi [-]
           while i < ListaPalabras.Count-1 do
           begin
             CodEqMzVal := Geo.RetornaCodigoEqMzVal(QGeoVarios,temp,Ciudad);
             if CodEqMzVal <> '' then
             begin
               CodEqMzValOk := CodEqMzVal;
               CodMzNivOk := Geo.RetornaNivelYNomMzVal(QGeoVarios,CodEqMzValOk,Ciudad,NomMzVal);
               NivelOk := Geo.RetornaNivelMzNiv(QGeoVarios,CodMzNivOk,Ciudad,NombreNivel,SiTabla);
               iok := i;
             end;
             i := i+1;
             if i < ListaPalabras.Count-1 then
               temp := temp + ' ' + ListaPalabras[i];
           end;
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con sentencia IF en SQL Coco_jac SQL 11 14-09-2006 01:03:55
Problemas con Sentencia SQL AGAG4 SQL 4 26-04-2006 03:11:57
Problemas con la sentencia LIKE feruiz Firebird e Interbase 5 13-07-2004 20:37:35
seguimiento de una varialbe maruenda Varios 15 26-01-2004 21:13:06
Seguimiento de la aplicación Mariana Varios 2 10-11-2003 15:54:40


La franja horaria es GMT +2. Ahora son las 17:01:57.


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