Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Escribir con máscara en un fichero de texto (https://www.clubdelphi.com/foros/showthread.php?t=14968)

jadelphi 06-10-2004 09:37:11

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.

basti 06-10-2004 10:26:57

Antes de pasarlo al TStringList puedes cambiar el formato con la función format:

Código Delphi [-]
  s := format('%n', [Tabla.FieldByName('Campo').AsFloat]);
  archivo.Add(s);

un saludo

Neftali [Germán.Estévez] 06-10-2004 10:31:09

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.+

jadelphi 06-10-2004 11:42:38

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.

Neftali [Germán.Estévez] 07-10-2004 10:36:21

Cita:

Empezado por jadelphi
pero me gustaría que escribiera ...
9.868.989,55
_____345,87
_______2,00
(sin el ___ claro está)

Bueno, no debe ser muy difícil hacer una funcioncilla que te lo haga;
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 06:22:45.

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