Datos double en un texto plano

29/05/2007 - 13:38 por Rafa Piula | Informe spam
Hola a todos, resulta que tengo que hacer una aplicación para migrar
datos y el origen está en textos planos, con un chorreo de registros
en una misma línea, bueno, este no es el problema. Cuando se trata de
un campo numérico del tipo double, lo que me aparece es :(P.Ej. :)
"ÍÌÌÌ̬F@" y no puedo recogerlo de ninguna manera, He probado con todo
lo que se ocurría, parse, convert, etc pero no lo consigo.

Alguna sugerencia?

Gracias anticipadas

Preguntas similare

Leer las respuestas

#1 Juan Carlos Paramá
29/05/2007 - 14:11 | Informe spam
Hola Rafa,

En principio para que aparezca una representación codificada en vez del
valor numérico solo se me ocurren dos opciones:

Una: El programa lo ha guardado así. En este caso tendrás que buscar el
algoritmo que utiliza el programa antiguo y aplicarlo a la inversa para
obtener el valor numérico.

Segunda: El programa antiguo guarda directamente las posiciones de
memoria donde esta codificado el double (lo que es bastante probable en tu
caso por la coincidencia de longitud). Por ejemplo, la mayor parte de las
implementaciones de C++ utilizan el estándar IEEE 754 (que utiliza 8 bytes,
los mismos que tiene la cadena que envías) para representar un número en
coma flotante. Básicamente este formato define el número así:

1 bit de signo
11 de exponente
53 de mantisa

Con estos datos ya tienes una indicación del valor posible del double. Para
más información del estándar echa un vistazo a la página del IEEE
http://standards.ieee.org/.

En tu caso tendrás que convertir el código ASCII (cuidado con la página de
caracteres) y componer con los 8 códigos y un número de 64 bits. A partir
de ahí tendrás que seguir el estándar para calcular el valor en decimal de
esa representación de 64 bits.

Espero que te sirva.

Saludos,

Juan Carlos Paramá

"Rafa Piula" escribió en el mensaje de noticias
news:
Hola a todos, resulta que tengo que hacer una aplicación para migrar
datos y el origen está en textos planos, con un chorreo de registros
en una misma línea, bueno, este no es el problema. Cuando se trata de
un campo numérico del tipo double, lo que me aparece es :(P.Ej. :)
"ÍÌÌÌ̬F@" y no puedo recogerlo de ninguna manera, He probado con todo
lo que se ocurría, parse, convert, etc pero no lo consigo.

Alguna sugerencia?

Gracias anticipadas
Respuesta Responder a este mensaje
#2 Octavio Hernandez
30/05/2007 - 02:14 | Informe spam
Hola,

Tiene toda la pinta de ser la segunda solución que propone Juan Carlos.
Si las contienen ocho caracteres, probablemte se traten de los ocho bytes
que coforman la imagen binaria de un double. Podrías coger cada uno de los
(ocho) bytes de cada línea y formar un double utilizando el método

BitConverter.ToDouble()

Slds - Octavio



"Rafa Piula" wrote in message
news:
Hola a todos, resulta que tengo que hacer una aplicación para migrar
datos y el origen está en textos planos, con un chorreo de registros
en una misma línea, bueno, este no es el problema. Cuando se trata de
un campo numérico del tipo double, lo que me aparece es :(P.Ej. :)
"ÍÌÌÌ̬F@" y no puedo recogerlo de ninguna manera, He probado con todo
lo que se ocurría, parse, convert, etc pero no lo consigo.

Alguna sugerencia?

Gracias anticipadas
Respuesta Responder a este mensaje
#3 Rafa Piula
30/05/2007 - 12:14 | Informe spam
On 30 mayo, 02:14, "Octavio Hernandez"
wrote:
Hola,

Tiene toda la pinta de ser la segunda solución que propone Juan Carlos.
Si las contienen ocho caracteres, probablemte se traten de los ocho bytes
que coforman la imagen binaria de un double. Podrías coger cada uno de los
(ocho) bytes de cada línea y formar un double utilizando el método

BitConverter.ToDouble()

Slds - Octavio

"Rafa Piula" wrote in message

news:
Hola a todos, resulta que tengo que hacer una aplicación para migrar
datos y el origen está en textos planos, con un chorreo de registros
en una misma línea, bueno, este no es el problema. Cuando se trata de
un campo numérico del tipo double, lo que me aparece es :(P.Ej. :)
"ÍÌÌÌ̬F@" y no puedo recogerlo de ninguna manera, He probado con todo
lo que se ocurría, parse, convert, etc pero no lo consigo.

Alguna sugerencia?

Gracias anticipadas



Gracias a los 2 por contestar. Al final lo he podido solucionar con
vuestras sugerencias.
He creado una matriz con los 8 bytes para después transformarlo a
Double con BitConverter.ToDouble()

Rafa
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida