PDA

Ver la Versión Completa : ahora no me funciona.....


NEG1414
20-02-2008, 19:20:18
Buenas

Tengo una clase en la que declaro una variable de la forma

float Coste;

tengo un Archivo de texto donde tengo el valor 0.50


Mediante un metodo recupero el valor anterior del archivo de texto y lo convierto a numero de la forma

char Cost[6];

ifstream Archivo(ValorCoste.txt,ios::in);

Archivo.getline(Cost,sizeof(Cost),´\n´);

Coste = StrToFloat(Cost);


Y es Ahora cuando viene lo curioso del caso: Me ha funcionado correctamente durante mucho tiempo pero cual es mi sorpresa cuando
hoy vuelvo a ejecutar el programa y me da el siguiente error:

class EconvertError with message "0.50´is not a valid floating point value....


Nota: Sigo Trabajando en la clase pero segurisimo que no he tocado nada que tenga alguna relacion con dicha variable.
Alguna Idea Gracias

escafandra
20-02-2008, 19:30:45
Revisa el contenido exacto de Cost tras leer tu archivo. es posible que tenga algún carácter de mas no numérico por posible corrupción de tu archivo. Revisa también esa línea del archivo, es posible que antes del retorno de línea (\n) tengas algo más que un número....


Saludos.

jachguate
20-02-2008, 22:09:40
Es muy probable que también esto dependa de la configuración regional del equipo, aunque lo ignoro.

Pienso que es posible porque en algunas partes del mundo, se usa la coma como separador decimal, mientras en otras, el punto. Entonces, si el equipo está configurado para reconocer la coma, es normal que '0.50' no sea un número válido.

Hasta luego.

;)

NEG1414
22-02-2008, 00:04:32
Efectivamente he hurgado en la configuracion regional y tenias razon la coma estaba predeterminada como separador decimal, fue cambiarla poe el punto y a funcionar de nuevo.

Este contratiempo me ha hecho pensar en que si el programa que estoy implementando una vez acabado se instala en un ordenador con la configuracion regional "mal" configurada no funcionara.......

Se puede solucionar este tipo de error a priori, osease que funcione independientemente de la configuracion regional de la maquina en la que se
instale.

Gracias

egostar
22-02-2008, 00:14:05
Efectivamente he hurgado en la configuracion regional y tenias razon la coma estaba predeterminada como separador decimal, fue cambiarla poe el punto y a funcionar de nuevo.

Este contratiempo me ha hecho pensar en que si el programa que estoy implementando una vez acabado se instala en un ordenador con la configuracion regional "mal" configurada no funcionara.......

Se puede solucionar este tipo de error a priori, osease que funcione independientemente de la configuracion regional de la maquina en la que se
instale.

Gracias


DecimalSeparator := '.';


Salud OS