[C con Clase] ficheros y array

Salvador Pozo salvapozo en gmail.com
Sab Jul 23 16:32:01 CEST 2016


El pasado 2016-07-23 13:42:11, luis alfonso jimenez mejia escribió:
 
lajm> bueno el problema es el siguiente: tengo un numero de 1000 digitos en un
lajm> fichero de 20 lineas por 50 columnas, la idea es leerlo del fichero y
lajm> guardarlo en array  bidimensional  con el mismo numero de filas que de
lajm> lineas del fichero y la cantidad de columnas que posee el numero escrito en
lajm> el fichero

Hola:

Si conoces el formato del fichero es más sencillo diseñar un algoritmo, ya que no hay variables en el tamaño del array.

En el primer mensaje despista un poco, ya que hay casillas de la tabla que contienen números de dos dígitos. Si cada columna sólo contiene un dígito, la cosa se simplifica bastante.

Asumiendo que el fichero está en formato texto, podemos considerar que contiene 20 líneas, cada una de ellas con una cadena de 50 caracteres, todos ellos dígitos entre '0' y '9'.

Lo que yo haría es leer cada línea completa en una cadena de 51 caracteres, 50 para los dígitos y uno extra para el carácter nulo de fin de cadena.

Posteriormente separamos los caracteres uno a uno y los almacenamos en las columnas correspondientes del array.

Si cada posición del array es un entero, se puede convertir un carácter de dígito a número fácilmente, basta con restar el valor '0'. Por ejemplo, '4'-'0' es 4.

Otro dato importante es que es recomendable que el primer índice de un array de dos dimensiones sean las filas y el segundo las columnas. Esto es porque los valores de las columnas de un array se almacenan en posiciones consecutivas de memoria, así que si sigues esta recomendación, todos los dígitos de tu número de 100 dígitos estarán almacenados en posiciones consecutivas en el mismo orden en que se escriben. Por lo tanto, es relativamente sencillo manejar el array de dos dimensiones como un array de una sola dimensión.

Hasta pronto.


lajm> El 22 de julio de 2016, 17:45, pepe perez <darkmalka en hotmail.com> escribió:
lajm> >
lajm> >
lajm> > buenas
lajm> >
lajm> > mirate lo de tratar datos con archivos secuenciales y de acceso
lajm> > aleatorio .hace mucho tiempo q no programo nada asi q no me voy a explicar
lajm> > nada bien ni dar muchos detalles de codigo. lo q comentas del algoritmo
lajm> > tampoco lo entiedo
lajm> >
lajm> > he terminado por pasarte el link de la pagina por q lo explica mucho mejor
lajm> >
lajm> > archivos acceso aleatorio
lajm> > <http://www.c.conclase.net/ficheros/?cap=006#inicio>
lajm> > http://www.c.conclase.net/ficheros/?cap=004#inicio
lajm> >
lajm> > todos los puntos q ves ahi en el menu de la izquierda pueden serte utiles
lajm> > para tratar otros archivos con datos en un futuro
lajm> >
lajm> > saludos
lajm> >
lajm> >
lajm> >
lajm> >
lajm> > ------------------------------
lajm> > *De:* Cconclase <cconclase-bounces en listas.conclase.net> en nombre de luis
lajm> > alfonso jimenez mejia <viejolajimenez en gmail.com>
lajm> > *Enviado:* viernes, 22 de julio de 2016 4:22
lajm> > *Para:* Lista de correo sobre C y C++
lajm> > *Asunto:* [C con Clase] ficheros y array
lajm> >
lajm> > bueno tengo una tabla en un fichero.txt , se como leer ficheros en c/c+,
lajm> > pero deseo guardar la tabla en un array bidimensional,quizas alguien podria
lajm> > orientarme en esta tarea,abajo les dejo un esbozo del algoritmo que quiero
lajm> > implementar, espero que puedan colaborarme o en su defecto recomendarme una
lajm> > buena solucion
lajm> >
lajm> > _______________________________________________
lajm> > Lista de correo Cconclase Cconclase en listas.conclase.net
lajm> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
lajm> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
lajm> >
lajm> _______________________________________________
lajm> Lista de correo Cconclase Cconclase en listas.conclase.net
lajm> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
lajm> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


Más información sobre la lista de distribución Cconclase