duda BinaryReader

12/10/2005 - 19:32 por luis | Informe spam
Tengo este código:
fe.BaseStream.Seek(-128,SeekOrigin.End);

char []tag=fe.ReadChars(3);

Es decir, me coloco 128 bytes antes de un archivo y leo tres caracteres. Sin
embargo me han pasado con algún archivo que la matriz no se llena y queda
con longitud cero. Esto no es debido a que no hayan bytes ya que todos los
archivos son grandes (de 1 mega para arriba) con lo que siempre se tiene que
poder poner 128 bytes antes del final.

Con una matriz de bytes lo soluciono pero quiero saber por que no valen
siemrpe con la matriz de char. El problema supongo es que hay veces que en
esas posiciones hay caracteres (con lo que va bien) y otras veces puede
haber cualquier byte. Si es así ¿en qué se basa c# para no considerarlos
como posibles caracteres o no (algún rango en concreto)?

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
12/10/2005 - 19:48 | Informe spam
Luis,

Creo que el problema está en la codificación de caracteres que utilizas.
¿Qué constructor utilizas para crear el BinaryReader? Hay una variante en la
que se indica el sistema de codificación, y otra que utiliza por defecto
UTF-8.

Echale un vistazo a esto:

http://msdn.microsoft.com/library/d...stopic.asp

Slds - Octavio

"luis" escribió en el mensaje
news:eoOz%
Mostrar la cita
#2 Zephryn Xirdal
12/10/2005 - 20:36 | Informe spam
Hola, Octavio.

Ya que estamos en el tema.

¿Qué codificación debo poner si quiero leer bytes en modo raw? Me refiero
a meter en un array del tipo byte *exactamente* lo que haya en el fichero,
sin interpretaciones de ningún tipo. Vamos el equivalente a meter en una
cadena de "unsigned char" lo leído mediante "fopen(<fich>,"rb"); del C de
toda la vida.

Es una duda que tengo desde hace mucho tiempo y que de momento no he
podido solventar, y creo yo que se trata de la solución al problema de
Luis.

En Wed, 12 Oct 2005 19:48:25 +0200, Octavio Hernandez
escribió:

Mostrar la cita
¿Para qué buscar lo divino a la distancia? Se encuentra en todos los
objetos en torno de nosotros.
Powered by zxFortunes - It's free -
http://sourceforge.net/projects/zxfortune
#3 Octavio Hernandez
12/10/2005 - 21:20 | Informe spam
Hola, Zephryn!

No estoy muy "ducho" en este tema, pero creo que el tema de la codificación
le afecta a él solo por el hecho de que utiliza ReadChars(), pero si usara
ReadByte() o ReadBytes(), que es lo que utilizaríamos para leer los bytes
"crudos" que componen el fichero, no afectaría.

Slds - Octavio

"Zephryn Xirdal" escribió en el mensaje
news:
Mostrar la cita
#4 Zephryn Xirdal
12/10/2005 - 21:35 | Informe spam
En Wed, 12 Oct 2005 21:20:53 +0200, Octavio Hernandez
escribió:

Mostrar la cita
Ok, gracias.
#5 luis
12/10/2005 - 23:00 | Informe spam
Creo el objeto mediante:
BinaryReader fe=new BinaryReader(fichero.OpenRead());

Siendo fichero de tipo FileInfo

"Octavio Hernandez" escribió en el mensaje
news:

Mostrar la cita
la
Mostrar la cita
http://msdn.microsoft.com/library/d...stopic.asp
Mostrar la cita
queda
Mostrar la cita
los
Mostrar la cita
en
Mostrar la cita
Ads by Google
Search Busqueda sugerida