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 28-07-2010
nena_yei nena_yei is offline
Miembro
 
Registrado: abr 2009
Posts: 60
Poder: 16
nena_yei Va por buen camino
Funcionamiento try?

Buenos días!

Tengo el siguiente código:

Código:
try
  i:=strtoint(lpstrText);
except
  nonota:=true;
end;
Entonces, la cosa es que si lpstrText es un texto que se puede convertir a integer, lo asignará a la variable i, i si no se puede convertir a integer porque es una palabra pues generará un error y entrará en el except. Pues bien, no sé si el funcionamiento del try no es ese o que algo estoy haciendo mal, pero no me entra en el except, me da error el strtoint y se cuelga el programa.
Alguien podría darme una solución a este código o una alternativa al funcionamiento deseado.

Muchísimas gracias!
Responder Con Cita
  #2  
Antiguo 28-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Este código debería funcionar perfectamente.
es posible que desde el IDE te estén saltando errores porque tiewnes la opción "Stop on Delphi Exceptions" activada. Desactívala desde:

Tools/Debugger options/Language exceptions/Stop on Delphi Exceptions.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 28-07-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola nena_yei.

En el editor de Delphi, hacé lo siguiente:
  1. Menú Tools.
  2. Item Debugger Options.
  3. Pestaña Languaje Exceptions.
  4. Destildá la opción Stop on Delphi Exceptions.
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 28-07-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Ups !!!! perdón.

Eso me pasa por adornar tanto el post !
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 28-07-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
No quiero desvirtuar, pero... ¿conoces la función TryStrToInt?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 28-07-2010
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
No quiero desvirtuar, pero... ¿conoces la función TryStrToInt?
... o StrToIntDef(texto, valorXDefecto) para poner un valor por defecto en caso de que no se pueda convertir...
Responder Con Cita
  #7  
Antiguo 29-07-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gente.
Totalmente de acuerdo con delphi.com.ar y javier7ar.
Con esas funciones se puede comprobar la conversión sin que que se lanze una excepción.

Pero nena_yei dijo:
Cita:
Pues bien, no sé si el funcionamiento del try no es ese o que algo estoy haciendo mal,...
Por lo que tratamos de aclarar por qué no le funcionaba el try except.

Si el caso expuesto hubiera sido este:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
  t: TextFile;
begin
  AssignFile(t,'F:\prueba.txt'); // ( PRUEBA.TXT NO FUE CREADO AUN )
  try
   Reset(t);
  except
   ShowMessage('El archivo no existe');
  end;
end;
No habría podido evitar que se eleve la excepción.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 30-07-2010
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
Si lo que quieres es utilizar un try, debería de funcionar tal como te lo dicen.
Yo utilizo lo siguiente:
Código Delphi [-]
i:= StrToIntDef(lpstrText, -1);
if i = -1 then nonota:=true;
Responder Con Cita
  #9  
Antiguo 30-07-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por toni.vi Ver Mensaje
Si lo que quieres es utilizar un try, debería de funcionar tal como te lo dicen.
Yo utilizo lo siguiente:
Código Delphi [-]
i:= StrToIntDef(lpstrText, -1);
if i = -1 then nonota:=true;
Insisto, para el código de él me parece mas correcto TryStrToInt

Código Delphi [-]
nonota := TryStrToInt(lpstrText, i);
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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
Funcionamiento de INNER RIGHT sisne SQL 1 14-04-2010 16:17:58
Funcionamiento ServerSocket vivamotos C++ Builder 4 07-04-2009 12:17:30
Funcionamiento de IBX y FIBPlus Ivanzinho Conexión con bases de datos 9 29-01-2008 17:22:02
Funcionamiento del StoredProc carlosegs11 SQL 4 08-05-2007 19:39:16
funcionamiento del RSA gulder Varios 2 22-04-2007 00:43:45


La franja horaria es GMT +2. Ahora son las 03:27:58.


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