URGENTE leer enteros de un fichero d texto y pasarlos a unamatrix

21/03/2005 - 21:45 por anah | Informe spam
Hola,
aún estoy aprendiendo C# pero necesito saber cçomo puedo leer valores
enteros de un fichero de texto y generar una matriz de enteros para exportar
a EXCEL.
Cómo solución alternativa se me ocurre hacer una clase en C** que tenga como
área de datos una matriz de enteros y un fichero de texto, pero tengo mucha
curiosidad de cómo hacerlo con C#, porque se me oucrren algunas formas de
hacerlo, pero estoy segura que teine que existir una alternatifva más
viable.

gracias
anah

Preguntas similare

Leer las respuestas

#1 Anonimo
22/03/2005 - 08:30 | Informe spam
puedes leer linea a linea según tu fichero y luego
convertir a int con clase Convert

Las urgencias sobran si.


Hola,
aún estoy aprendiendo C# pero necesito saber cçomo puedo


leer valores
enteros de un fichero de texto y generar una matriz de


enteros para exportar
a EXCEL.
Cómo solución alternativa se me ocurre hacer una clase


en C** que tenga como
área de datos una matriz de enteros y un fichero de


texto, pero tengo mucha
curiosidad de cómo hacerlo con C#, porque se me oucrren


algunas formas de
hacerlo, pero estoy segura que teine que existir una


alternatifva más
viable.

gracias
anah


.

Respuesta Responder a este mensaje
#2 anah
22/03/2005 - 10:56 | Informe spam
Primero gracias por contestar :)
Y bueno, esa opción ya la he probado. Lo que hago es leer el fichero en un
array de string (por cada posición una línea del fichero). Creo una variable
auxiliar en la que voy volcando palabra a palabra (es decir, entero a entero
en formato string) y la convierto a entero para guardarla en la matriz de
enteros. la instrucción que realiza eso es :

m_intDato[i][col] = Convert.ToInt32(aux); // char [] aux

Y me da una excepción al ejecutar:
"Excepción no controlada del tipo 'System.InvalidCastException' en
mscorlib.dll
Información adicional: La conversión especificada no es válida."

También me pasa si aux es de tipo string.

la verdad es que no se solucionarlo aunque me esfuerzo en leer un montón de
artIculos y libros.
Espero q podais ayudarme
muuuuuuchas gracias
anah


escribió en el mensaje
news:25b601c52eb0$fe010a50$
puedes leer linea a linea según tu fichero y luego
convertir a int con clase Convert

Las urgencias sobran si.


Hola,
aún estoy aprendiendo C# pero necesito saber cçomo puedo


leer valores
enteros de un fichero de texto y generar una matriz de


enteros para exportar
a EXCEL.
Cómo solución alternativa se me ocurre hacer una clase


en C** que tenga como
área de datos una matriz de enteros y un fichero de


texto, pero tengo mucha
curiosidad de cómo hacerlo con C#, porque se me oucrren


algunas formas de
hacerlo, pero estoy segura que teine que existir una


alternatifva más
viable.

gracias
anah


.

Respuesta Responder a este mensaje
#3 Vyacheslav Popov
22/03/2005 - 11:54 | Informe spam
Hola.

aux se supone que es un numero? Expon algo más de codigo.

Saludos

"anah" escribió en el mensaje
news:
Primero gracias por contestar :)
Y bueno, esa opción ya la he probado. Lo que hago es leer el fichero en un
array de string (por cada posición una línea del fichero). Creo una
variable
auxiliar en la que voy volcando palabra a palabra (es decir, entero a
entero
en formato string) y la convierto a entero para guardarla en la matriz de
enteros. la instrucción que realiza eso es :

m_intDato[i][col] = Convert.ToInt32(aux); // char [] aux

Y me da una excepción al ejecutar:
"Excepción no controlada del tipo 'System.InvalidCastException' en
mscorlib.dll
Información adicional: La conversión especificada no es válida."

También me pasa si aux es de tipo string.

la verdad es que no se solucionarlo aunque me esfuerzo en leer un montón
de
artIculos y libros.
Espero q podais ayudarme
muuuuuuchas gracias
anah


escribió en el mensaje
news:25b601c52eb0$fe010a50$
puedes leer linea a linea según tu fichero y luego
convertir a int con clase Convert

Las urgencias sobran si.


Hola,
aún estoy aprendiendo C# pero necesito saber cçomo puedo


leer valores
enteros de un fichero de texto y generar una matriz de


enteros para exportar
a EXCEL.
Cómo solución alternativa se me ocurre hacer una clase


en C** que tenga como
área de datos una matriz de enteros y un fichero de


texto, pero tengo mucha
curiosidad de cómo hacerlo con C#, porque se me oucrren


algunas formas de
hacerlo, pero estoy segura que teine que existir una


alternatifva más
viable.

gracias
anah


.





Respuesta Responder a este mensaje
#4 anah
22/03/2005 - 12:45 | Informe spam
aux es una variable auxiliar de tipo char[] o stirng (me da el mismo
problema) que almacena una cadena de caracteres que componen un número.
Esta variable se convierte a entero, porque al final es lo que quiero tener.
La función que he creado para traducir es la siguiente

v_strDato es un vector de strings que recoge una línea por posición del
fichero de texto
m_intDato es una matriz de enteros donde voy a guardar los valores enteros
del fichero ya convertidos
indexF es el índice de las filas del fichero y de la matriz de enteros,
porque habrá tantas filas en la matriz como filas en el fichero)
col es sl número de columnas en el fichero y por tanto en la matriz

EJEMPLO FICHERO DATOS:TXT
23 45 1 17 3
12 34 56 11 4
1 2 3 4 5
(3 filas x 5 columnas)
v_strDato[0] = "23 45 1 17 3"
...
v_strDato[2] = "1 2 3 4 5"

aux va a contener la primera vez la cadena "23" que quiero convertir al
valor 23 y guardarlo en m_intDato[0][0]
y así sucesivamente

Espero que la explicación sea suficiente y muchas gracias de antemano

static void StringToInt(string [] v_strDato, out Int32 [][] m_intDato, int
indexF, ref int col)



{

m_intDato = new Int32 [indexF][];

int i = 0;

while (i <= indexF)

{

int j = 0;

while (j < v_strDato[i].Length)

{

col = 0;

string aux = new string ((char[])null);



//ir sacando int por int eliminando los espacios en blanco

while (v_strDato[i][j] != ' ')

{

aux += v_strDato[i][j];

j++;

}



//guardar el valor en la matriz de enteros

m_intDato[i][col] = Convert.ToInt32(aux); <-- AQUI ME DA LA
EXCEPCION



//avanzar a la siguiente columna de la matriz de enteros

col++;



//saltar los siguientes espacios en blanco hasta llegar al

//siguiente valor

while (v_strDato[i][j] == ' ')

j++;

}

//siguiente posicion del array de strings

i++;

}

}








"Vyacheslav Popov" escribió en el mensaje
news:%
Hola.

aux se supone que es un numero? Expon algo más de codigo.

Saludos

"anah" escribió en el mensaje
news:
> Primero gracias por contestar :)
> Y bueno, esa opción ya la he probado. Lo que hago es leer el fichero en


un
> array de string (por cada posición una línea del fichero). Creo una
> variable
> auxiliar en la que voy volcando palabra a palabra (es decir, entero a
> entero
> en formato string) y la convierto a entero para guardarla en la matriz


de
> enteros. la instrucción que realiza eso es :
>
> m_intDato[i][col] = Convert.ToInt32(aux); // char [] aux
>
> Y me da una excepción al ejecutar:
> "Excepción no controlada del tipo 'System.InvalidCastException' en
> mscorlib.dll
> Información adicional: La conversión especificada no es válida."
>
> También me pasa si aux es de tipo string.
>
> la verdad es que no se solucionarlo aunque me esfuerzo en leer un montón
> de
> artIculos y libros.
> Espero q podais ayudarme
> muuuuuuchas gracias
> anah
>
>
> escribió en el mensaje
> news:25b601c52eb0$fe010a50$
> puedes leer linea a linea según tu fichero y luego
> convertir a int con clase Convert
>
> Las urgencias sobran si.
>
>
>>Hola,
>>aún estoy aprendiendo C# pero necesito saber cçomo puedo
> leer valores
>>enteros de un fichero de texto y generar una matriz de
> enteros para exportar
>>a EXCEL.
>>Cómo solución alternativa se me ocurre hacer una clase
> en C** que tenga como
>>área de datos una matriz de enteros y un fichero de
> texto, pero tengo mucha
>>curiosidad de cómo hacerlo con C#, porque se me oucrren
> algunas formas de
>>hacerlo, pero estoy segura que teine que existir una
> alternatifva más
>>viable.
>>
>>gracias
>>anah
>>
>>
>>.
>>
>
>


Respuesta Responder a este mensaje
#5 Vyacheslav Popov
22/03/2005 - 14:00 | Informe spam
Te responderé entre lineas.

"anah" escribió en el mensaje
news:
aux es una variable auxiliar de tipo char[] o stirng (me da el mismo
problema) que almacena una cadena de caracteres que componen un número.
Esta variable se convierte a entero, porque al final es lo que quiero
tener.
La función que he creado para traducir es la siguiente

v_strDato es un vector de strings que recoge una línea por posición del
fichero de texto
m_intDato es una matriz de enteros donde voy a guardar los valores enteros
del fichero ya convertidos
indexF es el índice de las filas del fichero y de la matriz de enteros,
porque habrá tantas filas en la matriz como filas en el fichero)
col es sl número de columnas en el fichero y por tanto en la matriz

EJEMPLO FICHERO DATOS:TXT
23 45 1 17 3
12 34 56 11 4
1 2 3 4 5
(3 filas x 5 columnas)
v_strDato[0] = "23 45 1 17 3"
...
v_strDato[2] = "1 2 3 4 5"

aux va a contener la primera vez la cadena "23" que quiero convertir al
valor 23 y guardarlo en m_intDato[0][0]
y así sucesivamente

Espero que la explicación sea suficiente y muchas gracias de antemano

static void StringToInt(string [] v_strDato, out Int32 [][] m_intDato, int
indexF, ref int col)



{

m_intDato = new Int32 [indexF][];

int i = 0;




Primer error: Sobrepasas el indice. Si indexF = 5 reservas 5 filas pero
cuentas desde 0 a 5 que es igual a 6
solucion: while (i < indexF)

while (i <= indexF)

{

int j = 0;




Segundo error: Sobrepaso de indices.
La longitud de linea 1 2 3 4 5 = 9 caracteres es distinta a 21 22 23 24 25 =
15 caracteres

while (j < v_strDato[i].Length)

{

col = 0;




La linea de abajo que segnifica? (char[])null

Bueno, empieza por depurar el codigo y luego me cuentas.
Saludos.
string aux = new string ((char[])null);



//ir sacando int por int eliminando los espacios en blanco

while (v_strDato[i][j] != ' ')

{

aux += v_strDato[i][j];

j++;

}



//guardar el valor en la matriz de enteros

m_intDato[i][col] = Convert.ToInt32(aux); <-- AQUI ME DA LA
EXCEPCION



//avanzar a la siguiente columna de la matriz de enteros

col++;



//saltar los siguientes espacios en blanco hasta llegar al

//siguiente valor

while (v_strDato[i][j] == ' ')

j++;

}

//siguiente posicion del array de strings

i++;

}

}








"Vyacheslav Popov" escribió en el mensaje
news:%
Hola.

aux se supone que es un numero? Expon algo más de codigo.

Saludos

"anah" escribió en el mensaje
news:
> Primero gracias por contestar :)
> Y bueno, esa opción ya la he probado. Lo que hago es leer el fichero en


un
> array de string (por cada posición una línea del fichero). Creo una
> variable
> auxiliar en la que voy volcando palabra a palabra (es decir, entero a
> entero
> en formato string) y la convierto a entero para guardarla en la matriz


de
> enteros. la instrucción que realiza eso es :
>
> m_intDato[i][col] = Convert.ToInt32(aux); // char [] aux
>
> Y me da una excepción al ejecutar:
> "Excepción no controlada del tipo 'System.InvalidCastException' en
> mscorlib.dll
> Información adicional: La conversión especificada no es válida."
>
> También me pasa si aux es de tipo string.
>
> la verdad es que no se solucionarlo aunque me esfuerzo en leer un
> montón
> de
> artIculos y libros.
> Espero q podais ayudarme
> muuuuuuchas gracias
> anah
>
>
> escribió en el mensaje
> news:25b601c52eb0$fe010a50$
> puedes leer linea a linea según tu fichero y luego
> convertir a int con clase Convert
>
> Las urgencias sobran si.
>
>
>>Hola,
>>aún estoy aprendiendo C# pero necesito saber cçomo puedo
> leer valores
>>enteros de un fichero de texto y generar una matriz de
> enteros para exportar
>>a EXCEL.
>>Cómo solución alternativa se me ocurre hacer una clase
> en C** que tenga como
>>área de datos una matriz de enteros y un fichero de
> texto, pero tengo mucha
>>curiosidad de cómo hacerlo con C#, porque se me oucrren
> algunas formas de
>>hacerlo, pero estoy segura que teine que existir una
> alternatifva más
>>viable.
>>
>>gracias
>>anah
>>
>>
>>.
>>
>
>






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida