Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2004
jadelphi jadelphi is offline
Miembro
 
Registrado: ago 2004
Posts: 21
Poder: 0
jadelphi Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 06-10-2004
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 06-10-2004
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.275
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
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.+
__________________
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
  #4  
Antiguo 06-10-2004
jadelphi jadelphi is offline
Miembro
 
Registrado: ago 2004
Posts: 21
Poder: 0
jadelphi Va por buen camino
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.

Última edición por jadelphi fecha: 06-10-2004 a las 18:16:11.
Responder Con Cita
  #5  
Antiguo 07-10-2004
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.275
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
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...
__________________
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
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


La franja horaria es GMT +2. Ahora son las 19:02:55.


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