Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por intercubo Ver Mensaje
hola:

quisiera saber si puedo poner un for dentro del else de un case, porque al parecer no esta ejecutando lo que yo quiero:
Me pregunto que es lo que no hace.....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #2  
Antiguo 19-02-2008
intercubo intercubo is offline
Miembro
 
Registrado: feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
Código Delphi [-]
Case Ord(C) of      97..122:      Col:=0; //Caracter      
48..57:      Col:=2;  //Numero      10,13:      Col:=22;  //Enter      
else //else del case        
begin          
for x:=0 to 24 do             
Begin              
if C=Columnas[x] then                
Begin                  
Col:=x;  //Caracter de la Matriz                
End              
else                
Col:=24; //Otra cosa             
end;       
 end;

Col siempre toma el valor 24, aunque C si sea igual a uno de los valores del arreglo Columnas[] cuando no es una de las 2 primeras opciones (caracter o numero)

Última edición por intercubo fecha: 19-02-2008 a las 04:38:31.
Responder Con Cita
  #3  
Antiguo 19-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por intercubo Ver Mensaje
Col siempre toma el valor 24, aunque C si sea igual a uno de los valores del arreglo Columnas[] cuando no es una de las 2 primeras opciones (caracter o numero)
Pues he probado tu código y si me da el número de indice del arreglo columnas.

Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  x,y: integer;
begin
  C := #123; // #123 = caracter {
  for y := 0 to 24 do begin
      Columnas[y] := Char(y+100); //Aquí ingreso los caracteres 100 al 124
  end;
  Case Ord(C) of
     97..122: Col:=0; //Caracter
     48..57: Col:=2;  //Numero
     10,13: Col:=22;  //Enter
     else begin
            for x := 0 to 24 do begin
                if C=Columnas[x] then begin
                   Col:=x;  //Caracter de la Matriz
                end
                else Col:=24; //Otra cosa
            end;
     end;
  end;
end;

El caracter #123={ está en el indice 23 de Columnas......

No entiendo cual es tu problema

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 19-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  x,y: integer;
begin
  C := #123; // #123 = caracter {
  for y := 0 to 24 do begin
      Columnas[y] := Char(y+100); //Aquí ingreso los caracteres 100 al 124
  end;
  Case Ord(C) of
     97..122: Col:=0; //Caracter
     48..57: Col:=2;  //Numero
     10,13: Col:=22;  //Enter
     else begin
            for x := 0 to 24 do begin
                if C=Columnas[x] then begin
                   Col:=x;  //Caracter de la Matriz
                   ShowMessage('Salio en Columna '+Inttostr(x)); //Muestro el valor de x
                   Exit; //Salgo del for
                end
                else Col:=24; //Otra cosa
            end;
     end;
  end;
end;

Edito: Aunque creo que se donde está el problema, como no haces un brake en el for, por eso es que sigue mostrando Col=24....., he corregido el código agregando un Exit.

Vaya genere otro post en lugar de editar el anterior....... bueno, inc(egostar)
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #5  
Antiguo 19-02-2008
intercubo intercubo is offline
Miembro
 
Registrado: feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
gracias, funciona bien con el exit, pero el problema es que al parecer se sale de los 2 for, solo quiero que se salga del inmediato superior, como puedo hacer eso, o que otra solucion tengo?

de antemano muchas gracias por la ayuda!
Responder Con Cita
  #6  
Antiguo 19-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
En lugar de exit; llama a break;

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 19-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por jachguate Ver Mensaje
En lugar de exit; llama a break;

Hasta luego.

Pues gracias amigo jachguate, me creeras que no me acordaba del famoso brake, de hecho nunca he tenido que usar el abortar un bucle..., exit, halt, brake son palabras que no uso normalmente....

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
case con strings molinero1 Varios 1 23-04-2007 13:34:24
case??? ivandelphi Varios 4 27-03-2007 00:58:55
CASE o IFF en SQL dark_c SQL 3 13-01-2007 20:07:33
Uso del Case IVAND SQL 4 05-04-2006 17:39:48


La franja horaria es GMT +2. Ahora son las 15:07:03.


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