Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Varios
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Coloboración Paypal con ClubDelphi

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 19/02/2008
intercubo intercubo is offline
Miembro
 
Join Date: Feb 2008
Posts: 11
Poder: 0
intercubo Va por buen camino
Post Case else

hola:

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

aqui esta el codigo:
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;

Gracias!!!
Reply With Quote
  #2  
Old 19/02/2008
[egostar] egostar is offline
Registrado
 
Join Date: Feb 2006
Posts: 6,572
Poder: 27
egostar Va camino a la fama
Quote:
Originally Posted by intercubo View Post
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
Reply With Quote
  #3  
Old 19/02/2008
intercubo intercubo is offline
Miembro
 
Join Date: 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)

Last edited by intercubo : 19/02/2008 at 04:38.
Reply With Quote
  #4  
Old 19/02/2008
[egostar] egostar is offline
Registrado
 
Join Date: Feb 2006
Posts: 6,572
Poder: 27
egostar Va camino a la fama
Quote:
Originally Posted by intercubo View Post
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
Reply With Quote
  #5  
Old 19/02/2008
[egostar] egostar is offline
Registrado
 
Join Date: 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
Reply With Quote
  #6  
Old 19/02/2008
intercubo intercubo is offline
Miembro
 
Join Date: 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!
Reply With Quote
  #7  
Old 19/02/2008
jachguate's Avatar
jachguate jachguate is offline
Miembro
 
Join Date: May 2003
Location: 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
Reply With Quote
  #8  
Old 19/02/2008
[egostar] egostar is offline
Registrado
 
Join Date: Feb 2006
Posts: 6,572
Poder: 27
egostar Va camino a la fama
Quote:
Originally Posted by jachguate View Post
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
Reply With Quote
  #9  
Old 19/02/2008
jachguate's Avatar
jachguate jachguate is offline
Miembro
 
Join Date: May 2003
Location: Guatemala
Posts: 6,254
Poder: 30
jachguate Va por buen camino
Bueno, yo si las uso... aún recuerdo que break fue introducido en Turbo Pascal 7 (si no me traiciona la memoria) y desde el inicio le vi la utilidad, pues da una salida elegante para casos donde no nos quedaba mas que retorcer un poco las cosas:

Código Delphi [-]
procedure PagarSalarios;
var
  I: Integer;
begin
  for I:= 0 to Empleados.Count - 1 do
  begin
    PagarSalarioEmpleado(Empleados[i]);
    if SaldoCuenta < 0 then
      Break;
  end;
end;
que mal ejemplo, verdad..

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Reply With Quote
  #10  
Old 19/02/2008
[egostar] egostar is offline
Registrado
 
Join Date: Feb 2006
Posts: 6,572
Poder: 27
egostar Va camino a la fama
Quote:
Originally Posted by jachguate View Post
Bueno, yo si las uso... aún recuerdo que break fue introducido en Turbo Pascal 7 (si no me traiciona la memoria) y desde el inicio le vi la utilidad, pues da una salida elegante para casos donde no nos quedaba mas que retorcer un poco las cosas:
Bueno, si la use cuando trabajaba con Turbo Pascal, pero con delphi no he tenido que usarla hasta ahora, no se si sea bueno o malo, o todo lo contrario.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
case con strings molinero1 Varios 1 23/04/2007 13:34
case??? ivandelphi Varios 4 27/03/2007 00:58
CASE o IFF en SQL dark_c SQL 3 13/01/2007 20:07
Uso del Case IVAND SQL 4 05/04/2006 17:39


All times are GMT +2. The time now is 23:07.


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