FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Convertir String a Float/Integer
Hola amigos, buenas tardes.
Acudo a ustedes nuevamente para el siguiente problema. TRABAJO CON: DELPHI6, FB 2.0, WIN10 Tengo una tabla en FB con ciertos campos, en 1 de ellos declarado como VARCHAR(10), se almacena información ALFABETICA, NUMERICA Y ALFANUMERICA. En este campo existen cadenas numéricas que me interesa convertirlas a numéricas válidas para el tipo NUMERIC(8,2) -importes de depósitos bancarios- estos datos los extraigo desde un documento PDF. He consultado con SAN GOOGLE y me encontré una sentencia en FB llamada "SIMILIAR TO" que válida si la cadena tiene números, pero estoy usando FB 2.0 y creo q esta sentencia es posterior a mi versión. https://firebird21.wordpress.com/201...numero-valido/ Y luego me encontré otra forma aqui, pero lo mismo apartir de la version 2.5 de FB la puedo usar. Ahora estoy viendo si con delphi puedo hacer algo y me encontré con la instrucción "StrToIntDef" que me permite convertir la cadena a un valor integer, pero mis "cantidades" tienen decimales...y obvio me marca error. Lo que estoy pensando -y no quiero llegar ahi- es leer caracter x caracter para válidar si es un número y concatenarlo hasta formar la cantidad del deposito y almacenarlo en OTRO campo con el tipo de dato correcto (numeric). Bien, pues la cantidad de registros para hacer lo del párrafo anterior son muchos como para leerlos de 1 x 1 y Caracter x Caracter...pero si NO hay otra solución pues ni modo, tendré que hacerlo. Aqui un ejemplo de los datos almacenados: Código:
HORA 09:30 PAGO RASTR CAJA 0071 Suc 870 pa 5,000.00 1,970.00 ESTADO DE 3,574.45 Como le harían usd. para convertir o copiar a otro campo las cantidades del ejemplo??... Estoy haciendo pruebas con "StrToIntDef" y "StringReplace" Saludos y muchas gracias de antemano.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! Última edición por mRoman fecha: 16-02-2023 a las 00:19:48. |
#2
|
||||
|
||||
¿Y por qué no pruebas con StrToFloat?
http://www.delphibasics.co.uk/RTL.php?Name=strtofloat El problema podría estar en el separador decimal, pero también puedes ver como cambiar eso en este hilo: https://www.clubdelphi.com/foros/showthread.php?t=35109 Saludos Última edición por ElKurgan fecha: 16-02-2023 a las 08:22:23. |
#3
|
||||
|
||||
Cita:
Conozco la instrucción pero no la he usado, pero que pasará con los datos que son alfabéticos....marcaría error??. Probaré En cuanto a tu otro link, lo consulte, pero en este caso, me quedaré con StringReplace y rescataré los decimales de otra forma... Te agradezco mucho tu tiempo. Saludos.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#4
|
||||
|
||||
¡Hola, mRoman!
El posible inconveniente (que no lo es del todo) es que manejas Delphi 6, en versiones mas recientes se tiene TryStrToFloat, la cual nos permite validar si el texto se puede convertir a un número. O también en versiones mas recientes puedes usar expresiones regulares para validar texto.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#5
|
||||
|
||||
Así tienes un tryStrToFloat casero
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#6
|
||||
|
||||
Cita:
Gracias!. Saludos.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#7
|
||||
|
||||
Cita:
Gracias Casimiro.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#8
|
||||
|
||||
Estas funciones las uso en mis aplicaciones:
|
#9
|
||||
|
||||
Ok, utilice tu recomendación Casimiro, pero como le hago para que siga con el proceso?. En cuanto encuentra la Excepción se detiene y ya no continua.
Aqui el código con el cual estoy haciendo pruebas:
El TRY debo ponerlo dentro del While??
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#10
|
||||
|
||||
Cita:
Gracias Duilio por tu aportación y tiempo. Lo checo también.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#11
|
||||
|
||||
Me contesto solo...
Cita:
Coloque el TRY dentro while...y ejecuta sin problema: Aqui el código:
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Convertir campos numeric o float en Integer | Leopard2 | Conexión con bases de datos | 4 | 01-09-2014 20:51:05 |
Convertir String a Integer en consulta SQL | Delphitest | SQL | 6 | 25-05-2010 20:36:20 |
convertir edit de string a float | Kamael | OOP | 1 | 11-08-2007 04:33:23 |
Convertir un String a Integer | Rafe | Varios | 2 | 12-08-2005 18:43:38 |
Como Convertir un dato Integer ó Float a String en FireBird???? | AGAG4 | Firebird e Interbase | 8 | 04-12-2004 03:59:47 |
|