Manejo de archivos en Lenguaje C
|C es uno de los lenguajes de programación más amplios y extensos que existen en la actualidad; por ello, el manejo de archivos o manipulación de estos no es una tarea tan difícil que digamos.
Al hablar de manejo de archivos en programación C nos referimos no al común almacenamiento en memoria (como normalmente se realiza con variables globales en C) sino a un almacenamiento en cualquier archivo ubicado en nuestro disco rígido, que en la mayoría de los casos es nuestro disco duro.
La entrada y salida (E/S) de datos es una de las características más habitualmente utilizadas en cualquier lenguaje programación para el manejo de datos…
Para poder manejar archivos en C es oportuno utilizar un puntero predefinido por nosotros dirigido a una estructura FILE que es un tipo de dato específico definido en la librería < stdio.h >.
La sintaxis básica es:
FILE *nombre;
nombre = facciónarealizar ( " nombredelarchivo.doc " , " modo " ) ;
Nótese que para una acción específica, ha de anteponérsele a la misma una f (proveniente de file, que es archivo en español); es indispensable el uso de ésta «palabrita» antes de la acción específica.
Un ejemplo básico:
FILE *fp;
fp = fopen ( " documento.txt " , " w+ " );
Allí abriremos el fichero documento.txt.
Existen diversos modos para manipular archivos:
- – r : Sólo abre un fichero para su lectura.
– w : Si el fichero no existe, lo crea. Si existe, lo borra y añade uno nuevo.
– a : El fichero debe (ó no) existir. Lo abre para añadir información al final.
– r+ : El fichero ya existe y lo abre para actualizarlo.
– w+ : Crea un nuevo fichero para actualizarlo y si existe, sobreescribe en él.
– a+ : Abre un fichero para añadir información al final. Si no existe, lo crea.
Hagamos un ejemplo simple, abramos un documento Word y escribamos en él un texto que será solicitado al usuario desde lenguaje C.
Puedes descargar el código fuente desde aquí, y también, puedes descargar el ejecutable del programita de prueba.
Lamentablemente, no podré desarrollar aquí el código por limitaciones de mi servicio de hospedaje; no me permite la inclusión de códigos en programación C.
Si tienes alguna duda, no dudes en preguntar aquí mismo. 🙂
como puedo crear un procedimiento con el cual lea el nombre de el archivo… es decir, quiero que se lea el nombre y en base a esse nombre buscarlo para abrirlo; tmb para poder asignarle un nombre a un archivo(guardar archivo) , como le hago??
Hola,
Por ahora te puedo responder la segunda pregunta, y es que tú puedes crear (o como tú le llamas: «guardar») mediante cualquiera de los modos para manipular los archivos.
De hecho, en el fichero de prueba que he subido puedes presenciar que el archivo no existe (el documento word), pero el mismo te lo crea para poder guardar en él todo el texto que deseas. Sólo debes asignarle su nombre, y la ubicación en tu disco rígido.
Te recomiendo analices bien el código fuente que he expuesto.
Saludos.
mi problema es que tengo un archivo tipo .txt y necesito modificar su contenido desde un programa en c++. la forma del archivo es la siguiente:
8624357-7 gonzalez perez juan 12455
8624357-7 gonzalez perez pedro 12455
8624357-7 gonzalez perez sandro 12455
Alguien me puede ayudar con Apareo de Archivos..
como puedo indicarle la direccion del sisteme en donde deseo crear el archivo?
Andrés: aclara un poco tu pregunta y sé más objetivo porque no he entendido muy bien lo que me quieres pedir.
Marilyn: en Google encontrarás información relevante sobre apareo de archivos.
Enzo: en la sintaxis, observa:
nombre = facciónarealizar ( ” nombredelarchivo.doc ” , ” modo ” ) ;
«nombredelarchivo.doc» es la ubicación en la que vas a guardar tu archivo. Allí no he especificado y lo va a guardar donde está compilado el programa. Pero puedes especificar (C:\Carpeta\Archivo.doc).
ANDRES SEGOVIA: para modificar el archivo desde el programa basta con que le eches un vistazo al fichero de prueba que subio nuestro colega Kervin, pues es sencillo, lees el archivo con «a» o «a+» dependiendo del caso, y luego con fprintf vas agregandole lo que deseas, ahora, si lo que quieres es modificar una parte en particular del archivo, si no me equivoco (y le pido al amigo Kervin que me corrija si estoy errada) pues al abrir el archivo debes ubicar el puntero exactamente en el caracter en el cual quieres empezar a modificar, y en C y C++ se utiliza la funcion «fseek» para reubicar los punteros, por lo cual te recomiendo que busques en google la sintaxis exacta para utilizar esa funcion que es muy muy util, sino pues pido a Kervin que por favor nos colabore con algun codigo de prueba donde se utilice el «fseek» o en su defecto, que nos ayude (porq tambien me interesa saberlo) para conocer como modificar el contenido de un archivo existente, no solo agregarle data, sino cambiar algun dato especifico que se encuentre dentro del archivo. Gracias y felicidades por el blog, esta excelente.