Problemas con puntos y comas
Hola, tengo un problemón resulta que estoy haciendo un software que realiza una serie de cálculos hidráulicos y utiliza muchos stringgrid y edit con números para realizar estos cálculos, todos los datos y resultados (de 18 forms hasta ahora) lo puedo guardar en archivos y luego cargarlos al programa en cualquier momento, el problema es que reinstalé la máquina y después de esto ahora resulta que mi pc no reconoce como real numeros con coma(6,8 por ejemplo) sino que calcula con punto(6.8) entonces cuando cargo la información a los form me los carga con coma y no con puntos y no puedo calcular, no sabía que esto podía pasar y hasta ahora en todas las pc donde lo he probado trabajan coma, lo que necesito es buscar una forma de normalizar esto para que siempre sea con coma o punto en cualquier pc(preferentemente coma) espero haberme explicado
|
Una forma es modificar el registro global FormatSettings al inicar tu aplicaciòn para que siempre tome la coma como separador decimal...
asi:
Pero debes tener en cuenta que estas almacenando tus datos en archivos en forma de texto (supongo).. asi que siempre deberas tener cuidado como lo lees y como lo guardas... otra opcion es la de utilizar un registro formatsettings personalizado para hacer tus conversiones. asumamos por ejemplo que tienes tus datos almacenados con un separador decimal igual a símbolo "Arroba".. los debes leer y trabajarlos en pantalla con el separador decimal de la màquina... y cuando los guardes los debes guardar en otro archivo que tiene otro separado decimal, por ejemplo el signo "dolar"
Espero haber sido claro |
Muy Claro muchas gracias pruebo y te digo
|
Otra explicación, también muy clara, pero en inglés.
5 Minute Snack: Reading floats with StrToFloat and TFormatSettings independent of system region settings Quizás deberías hacer un par de funciones para leer y escribir números. Los número que guardes en el fichero deberán tener siempre el mismo formato, ya que de lo contrario no podrás compartir ese fichero entre ordenadores con diferente configuración. Los números que muestres deben seguir la configuración del ordenador. |
Disculpen la demora pero es que tuve problema con internet, al configurar el software a trabajar con ¨,¨ me fue suficiente y se que me podrán decir que debo respetar la configuración regional y utilizar ¨,¨ o ¨ .¨ pero es que debo utilizar ¨,¨ porque pienso utilizar números separados por puntos para una funcionalidad(que aún no me he decidido) que quizas le agregarle al programa.Como siempre Gran ayuda.
Se me olvidaba tube que hacer una pequeña modificación Cita:
|
Cita:
(*) Menciono lo de poner orden, porque se sabe que el uso de variables globales... sueltas por ahí en unidades no es una buena práctica.. saludo, |
Yo aconsejo siempre lo mismo que comenta [gatosoft]: usar un TFormatSettings propio. Tiene la gran ventaja de que si algun dia se necesita paralelizar, te ahorras el quebradero de cabeza de actualizar todas las llamadas a las funciones de formato, ya que el registro TFormatSettings global no es thread-safe.
De todos modos, considera llevarlo un poquito mas alla y crear tus propias clases/funciones para formatear, de esta manera es muy claro que se esta formateando, con que parametros, y permite modificar la configuracion de todo el programa sin tener que andar buscando referencias desparramadas por todo el codigo. Es algo que no cuesta nada de nada implementar y el dia de mañana lo agradeceras |
La franja horaria es GMT +2. Ahora son las 02:00:03. |
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