![]() |
Escribir con máscara en un fichero de texto
Hola colegas, tengo un problemilla, estoy creando un fichero de texto y necesito que los campos numéricos (Float) salgan con el formato ###.###.###,##, o sea, con puntos de separación entre los millares y con una coma antes de los decimales.
El dato que quiero está en una tabla Paradox, lo leo, lo convierto a String para añadirlo a una linea de texto que es la que escribo en el fichero de texto con Archivo.Add(linea) siendo Archivo un TStringList. Gracias de antemano y a ver si me podeis ayudar. Salu2. |
Antes de pasarlo al TStringList puedes cambiar el formato con la función format:
un saludo |
Revisa en la ayuda de Delphi sobre la función FormatFloat, verás que incluye un ejemplo; Me da la impresión de que deberás utilizar una máscara similar a ésta: '000.000.000,00' (o intercambiando las comas por puntos).
Posiblemente (y segun la configuración de tu ordenador) debas modificar las variables globales de Delphi: * DecimalSeparator * ThousandSeparator que se encuentran en la unit SysUtils (y que modifican los valores de la configuración reginonal de tu ordenador); Con ésto puedes escoger si quieres el punto para decimales y la coma para millares o al contrario.+ |
Muchas gracias a los dos, ya me sale más o menos lo que quiero, jejeje.
Ahora ya me escribe en el fichero con puntos y comas... 9.868.989,55 345,87 2,00 pero me gustaría que escribiera ... 9.868.989,55 _____345,87 _______2,00 (sin el ___ claro está) es decir, rellenar con espacios los primeros caracteres para que queden ajustados al mismo tamaño. Esto lo tengo que hacer yo a mano o hay alguna función para ello??? Muchas gracias. Salu2. |
Cita:
Por ejemplo si quieres que todas tus cadenas ocupen 12 espacios: (1) Creas una cadena de 12 espacios (con DupeString -en la ayuda de delphi hay ejemplos-) y luego le unes tu número; tendrás algo así: ____________9.868.989,55 ____________345,87 ____________2,00 (donde _ serán espacios) (2) Luego cortas la cadena quedándote con los 12 caracteres de la derecha (para ello utiliza Copy -en la ayuda de delphi hay ejemplos-); Con lo que te quedará algo así: 9.868.989,55 ______345,87 ________2,00 (donde _ serán espacios) Espero haberme explicado decentemente...;) |
La franja horaria es GMT +2. Ahora son las 10:30:22. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi