[C con Clase] Orientación sobre el manejo de ficheros

José Luis Torre joseluistorrehernandez en gmail.com
Mar Oct 2 19:30:21 CEST 2012


El día 2 de octubre de 2012 15:59, Ali Rincon
<alrincon1963 en hotmail.com> escribió:
> El pasado 2012-10-02 09:45:52, jiptohej escribió:
>
> j> Hola Ali:
> j> Paso a comentar tu correo.
> j> En primer lugar (y sin ningún ánimo de molestarte), un conjunto de
> j> datos o quizás con mas propiedad, unos datos no constituyen una base
> j> de datos.
> j> Lo que normalmente se entiende por una base de datos es una aplicación
> j> que permite el almacenamiento y recuperación de grandes cantidades de
> j> datos almacenados de acuerdo con determinada estructura (de red,
> j> relacional, ...)
> j> Lo que tú planteas es que tienes los datos en un fichero plano (un
> j> fichero no estructurado, o a lo sumo estructurado en líneas)
> j> Por otro lado, es importante distinguir si lo que quieres hacer son
> j> ejercicios sobre cómo se utilizan los ficheros o quieres tener esos
> j> ficheros de verdad (porque te interesan para otra aplicación) o
> j> sencillamente si has generado este fichero te basta con generar el
> j> fichero que sólo contenga los pares (con una condición en el programa
> j> anterior lo solucionas).
> j> Por eso te pregunto: ¿qué es lo que realmente quieres hacer? ten en
> j> cuenta que la programación es una
> j> actividad orientada a un objetivo y por eso es  muy importante conocer
> j> el objetivo para determinar qué
> j> medios vas a utilizar.
> j> Si lo que te interesa es aprender, está bien resolver el mismo
> j> problema con métodos diferentes.
> j> Saludos
> j> José Luis
> j> El día 2 de octubre de 2012 04:45, Ali Rincon
> j> <alrincon1963 en hotmail.com> escribió:
> j> > Hola a todos. Necesito, por favor, me orienten con relación al manejo de los ficheros, lo que se puede hacer o no con ellos. Actualmente trabajo en el problema de como imponer condiciones sobre una base de datos. Es decir, dispongo por ejemplo de la siguiente base de datos:
> j> >
> j> > 1234567891011121314
> j> > 1234567891011121315
> j> > 1234567891011121415
> j> > 1234567891011131415
> j> > 1234567891012131415
> j> > 1234567891112131415
> j> > 12345678101112131415
> j> > 12345679101112131415
> j> > 12345689101112131415
> j> > 12345789101112131415
> j> > 12346789101112131415
> j> > 12356789101112131415
> j> > 12456789101112131415
> j> > 13456789101112131415
> j> > 23456789101112131415
> j> >
> j> > Esta base fue generada por un código que me da todas las combinaciones de N números tomados de k en k, sin repetición. Posteriormente lo grabe en un fichero. Ahora necesito saber como imponer condiciones sobre esta base de números, tales como:
> j> >
> j> > A) Desea eliminar todos los números pares, (s/n)?
> j> >    Salida: La lista anterior, pero sin números pares!
> j> > .
> j> > .
> j> > .
> j> > y así, cualquier condición que se quiera imponer. El punto esta en que no se hasta que punto puedo hacer esto con ficheros. No se si debo trabajar con lista dinamicas, arrays, nodos, etc. Aqui es donde necesito la ayuda de uds. Orientenme en torno a la manera correcta de enfocar este problema y como poder solucionarlo.
> j> >
> j> > Les agradezco, de antemano, toda la ayuda que me puedan brindar.
> j> >
> j> > Muy atentamente,
> j> >
> j> > Ali Rincon
> j> > _______________________________________________
> j> > Lista de correo Cconclase Cconclase en listas.conclase.net
> j> > http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> j> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
> j> --
> j> José Luis Torre
> j> ww.ehu.es
> j> _______________________________________________
> j> Lista de correo Cconclase Cconclase en listas.conclase.net
> j> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> j> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
> Gracias por responderme, José Luis. No me molesto por tu comentario. Estoy aprendiendo. Mira, si tengo unos datos, guardados en un fichero plano, estructurado en lineas, como dices. De hecho, mis datos son millones de números, pero solo mostré un ejemplo para saber como se hacen las cosas con unos pocos. De hecho los grabe en un fichero por que me interesan para otras aplicaciones. No puede imponer las condiciones 'antes', por que no es válido. Estaría solucionando un caso muy particular antes de la solución general. Lo que quiero aprender es como imponer estas condiciones (u otras) sobre este conjunto de datos grabados en un fichero con las características antes mencionadas. Por otro lado, no se si es el mejor enfoque, trabajar con fichero, ó si es mejor trabajar en otro esquema. Para que te des una idea, piensa en encontrar una solución general a un problema determinado, y luego pasas a analizar casos particulares imponiendo condiciones locales a tu solución general.
>
> Te agradezco toda tu ayuda al respecto.
>
> Muy atentamente,
>
> Ali Rincon
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

Hola Ali:

Entiendo lo que me dices; lo que no dices es cuál es el problema que
quieres resolver.

Por ejemplo, puedes querer resolver las ecuaciones de un polinomio, la
inversa de una matriz, el producto de matrices, en general operaciones
con matrices, hacer derivadas de funciones, acceder a datos de un
fichero, comunicar dos ordenadores mediante sockets, conectarte con un
ordenador, escribir un programa que envíe ficheros a otros
ordenadores, mantener sincronizados dos ordenadores en el sistema
operativo linux (en windows), ...

El número de problemas existentes es infinito (no sé en qué grado)
pero aunque sólo sea un número infinito numerable para mí es más que
suficiente.

En resumen creo que una cosa es querer aprender un lenguaje y las
técnicas que pueden utilizarse y otra diferente es resolver un
problema, y para esto último lo primero es intentar expresarlo lo
mejor posible.

Saludos
José Luis




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