3
UNIVERSIDAD TECNOLÓGICA LA SALLE ULSA-LEÓN Lenguaje de Programación II 1 Docente: Ing. Carolina V. Robelo J. LABORATORIO: ARCHIVOS DE TEXTO EN C Objetivo de la práctica: Aprender a crear programas guardando la información en un archivo de texto. ARCHIVOS DE TEXTO EN C En lugar de hacer la entrada vía teclado y la salida vía pantalla, se puede hacer usando archivos de datos en c. Para trabajar con archivos debe seguirse la secuencia siguiente: 1. Establecer un área de memoria temporal escribiendo: FILE *ptvar; 2. Abrir el archivo mediante la función fopen de la siguiente manera: ptvar= fopen(“nombre-archivo”, “modo-apertura”); El modo de apertura puede ser: r abre un fichero para lectura. Si el fichero no existe devuelve error. w abre un fichero para escritura. Si el fichero no existe se crea, si el fichero existe se destruye y se crea uno nuevo. a abre un fichero para añadir datos al final del mismo. Si no existe se crea. + símbolo utilizado para abrir el fichero para lectura y escritura. Si fopen ( ) no consigue abrir el fichero solicitado, devuelve 0 (valor nulo NULL) ¿Por qué no se puede abrir un fichero? Por ejemplo, si no existe. Disco lleno. Nombre incorrecto. Directorio no válido. Etc. Es recomendable realizar algún control al abrir el archivo, por ejemplo: if (ptvar = fopen("ejemplo.dat", "r")!= 0) 3. Lectura y escritura de caracteres Para leer y escribir ficheros carácter a carácter, utilizamos la función getc () y putc(). Las funciones getc ( ) y putc ( ) se comportan de forma semejante a getchar() y putchar(). Con getc ( ) y putc ( ) se debe indicar el nombre del fichero Lectura y escritura de cadenas de caracteres (líneas) Leer o escribir cadenas de caracteres resulta tan sencillo como leer y escribir caracteres. En este caso se deben utilizar las funciones: fputs () Tiene los siguientes parámetros: El array de caracteres que queremos escribir. Se escribirán secuencialmente todos los caracteres hasta que se encuentre un fin de cadena \0 La variable puntero del tipo FILE que creamos fgets () Tiene los siguientes parámetros: Un array de caracteres en el que se meterá la línea leída del fichero. Este array debe tener tamaño suficiente para la línea o tendremos problemas. Tamaño del array de caracteres. Si la línea es más larga, sólo se leeran n caracteres, para no desbordar el array. Si la línea tiene menos caracteres, se meteran en el array y se pondra un fin de cadena (un \0) al final. La variable puntero del tipo FILE que creamos Entrada y salida con formato: fprintf ( ); y fscanf ( ); Se comportan exactamente igual que printf (); y scanf (); excepto que requieren un argumento adicional que corresponde al fichero deseado. La idea de fscanf es que como parámetro se le pasa el formato de lo que se quiere leer, y esta se encarga de buscarlo en el fichero y leerlo. Los parámetros de esta función son: fscanf (var-puntero, formato, variable) La variabe puntero del tipo FILE, Formato de lo que hay en el fichero (números, cadena de caracteres, etc) y el nombre de la variable donde se ira guardando lo que se vaya leyendo del fichero. 4. Finalmente debemos cerrar nuestro archivo con la funcion fclose. Ejemplo: fclose(ptvar);

Guia de Laboratorio Archivos en C

Embed Size (px)

DESCRIPTION

Practica de C

Citation preview

  • UNIVERSIDAD TECNOLGICA LA SALLE

    ULSA-LEN

    Lenguaje de Programacin II 1

    Docente: Ing. Carolina V. Robelo J.

    LABORATORIO: ARCHIVOS DE TEXTO EN C

    Objetivo de la prctica: Aprender a crear programas guardando la informacin en un archivo de texto.

    ARCHIVOS DE TEXTO EN C

    En lugar de hacer la entrada va teclado y la salida va pantalla, se puede hacer usando archivos de datos en c. Para trabajar con archivos debe seguirse la secuencia siguiente:

    1. Establecer un rea de memoria temporal escribiendo: FILE *ptvar;

    2. Abrir el archivo mediante la funcin fopen de la siguiente manera: ptvar= fopen(nombre-archivo, modo-apertura);

    El modo de apertura puede ser: r abre un fichero para lectura. Si el fichero no existe devuelve error. w abre un fichero para escritura. Si el fichero no existe se crea, si el fichero existe

    se destruye y se crea uno nuevo. a abre un fichero para aadir datos al final del mismo. Si no existe se crea. + smbolo utilizado para abrir el fichero para lectura y escritura.

    Si fopen ( ) no consigue abrir el fichero solicitado, devuelve 0 (valor nulo NULL) Por qu no se puede abrir un fichero? Por ejemplo, si no existe. Disco lleno. Nombre incorrecto. Directorio no vlido. Etc. Es recomendable realizar algn control al abrir el archivo, por ejemplo:

    if (ptvar = fopen("ejemplo.dat", "r")!= 0)

    3. Lectura y escritura de caracteres Para leer y escribir ficheros carcter a carcter, utilizamos la funcin getc () y putc(). Las funciones getc ( ) y putc ( ) se comportan de forma semejante a getchar() y putchar(). Con getc ( ) y putc ( ) se debe indicar el nombre del fichero Lectura y escritura de cadenas de caracteres (lneas) Leer o escribir cadenas de caracteres resulta tan sencillo como leer y escribir caracteres. En este caso se deben utilizar las funciones: fputs () Tiene los siguientes parmetros: El array de caracteres que queremos escribir. Se escribirn secuencialmente

    todos los caracteres hasta que se encuentre un fin de cadena \0 La variable puntero del tipo FILE que creamos

    fgets () Tiene los siguientes parmetros: Un array de caracteres en el que se meter la lnea leda del fichero. Este

    array debe tener tamao suficiente para la lnea o tendremos problemas. Tamao del array de caracteres. Si la lnea es ms larga, slo se leeran n

    caracteres, para no desbordar el array. Si la lnea tiene menos caracteres, se meteran en el array y se pondra un fin de cadena (un \0) al final.

    La variable puntero del tipo FILE que creamos Entrada y salida con formato: fprintf ( ); y fscanf ( ); Se comportan exactamente igual que printf (); y scanf (); excepto que requieren un argumento adicional que corresponde al fichero deseado. La idea de fscanf es que como parmetro se le pasa el formato de lo que se quiere leer, y esta se encarga de buscarlo en el fichero y leerlo. Los parmetros de esta funcin son: fscanf (var-puntero, formato, variable) La variabe puntero del tipo FILE, Formato de lo que hay en el fichero (nmeros, cadena de caracteres, etc) y el nombre de la variable donde se ira guardando lo que se vaya leyendo del fichero.

    4. Finalmente debemos cerrar nuestro archivo con la funcion fclose. Ejemplo: fclose(ptvar);

  • UNIVERSIDAD TECNOLGICA LA SALLE

    ULSA-LEN

    Lenguaje de Programacin II 2

    Docente: Ing. Carolina V. Robelo J.

    Comprobacin de fin de fichero: feof

    Para leer desde un archivo, lo podemos hacer creando un bucle while, la lectura se realiza hasta que se encuentre el final del fichero. La deteccin del final del fichero se puede llevar a cabo de dos formas:

    Con la funcin feof Esta funcin comprueba si se ha llegado al final del archivo o fichero, en cuyo caso devuelve un valor distinto de 0. Si no se ha llegado al final de fichero devuelve un cero. Por eso se puede usar del siguiente modo:

    while(feof(fichero) == 0) equivalentes while(!feof(fichero))

    Comprobando si el valor del caracter es EOF (ltimo caracter de cualquier archivo).

    Consiste en comprobar si el carcter ledo es el de fin de fichero EOF

    while ( letra != EOF )

  • UNIVERSIDAD TECNOLGICA LA SALLE

    ULSA-LEN

    Lenguaje de Programacin II 3

    Docente: Ing. Carolina V. Robelo J.

    GUIA DE EJERCICIOS

    1. Realizar conversin de crdobas a dlares, guardando los datos de entradas en un archivo

    llamado cordobas.txt ubicado en el directorio c:\\ y el resultado de la conversin

    almacenarlo en otro archivo llamado dlares.txt

    2. Abrir un archivo que contiene el nombre de un alumno y su nota correspondiente a Leng.

    De Programacion II. Luego crear un archivo de salida y escribir estos datos (pero en orden

    invertido). El archivo de entrada pueden crearlo con un editor de texto.

    Archivo de entrada: entrada.txt

    Armando 100

    Archivo de salida: salida.txt

    100 Armando

    3. Extender el ejercicio anterior para que sea capaz de leer y escribir mltiples pares de nombres y notas. Sugerencia: Crear un ciclo y chequear cuando la rutina fscanf retorna EOF.

    4. Programa que permita crear un archivo de texto llamado PRUEBA.TXT mediante la escritura de caracteres, hasta que el carcter introducido sea 0. A continuacin mostrar el contenido del fichero por pantalla.

    5. Crear un fichero de texto llamado SALIDA.TXT a partir del archivo creado en el ejercicio anterior, copiando carcter a carcter los elementos del archivo PRUEBA.TXT. Hacerlo diseando previamente una funcin a la que se le pasen los dos archivos.

    6. Programa que permita contar el nmero de caracteres de un archivo de texto ya creado, mostrando en pantalla aquellos que coincidan con el carcter 'a'. Deber hacer una copia del archivo en otro, pero sustituyendo ese carcter por el carcter *. Los nombres de los dos archivos se pasarn como parmetros en la lnea de comandos.

    7. Crear una estructura para almacenar los datos de un alumno (nombre, edad, curso y nota). Presentar Menu con las opciones de crear archivo, insertar datos, ver datos, buscar datos, editar y borrar datos existentes.

    8. Programa que abre un fichero de texto cuyo nombre se introduce por teclado, y permite aadirle cadenas de caracteres hasta que la cadena introducida sea "FIN".

    9. Programa que cuente el nmero de palabras, de lneas y de caracteres de un fichero de texto cuyo nombre se da como parmetro.

    10. Programa que haciendo uso de un fichero de texto existente cuyo nombre se introduce por teclado, cree otro pero con los caracteres del primero en mayscula. Despus se renombrar el fichero obtenido con el nombre del primer fichero.

    11. Escribir un programa que lea un fichero, indicado como parmetro en la llamada al programa, hasta encontrar el final del archivo, buscando la palabra que contenga el mayor nmero de vocales.

    12. Crea un archivo de texto llamado ZIPCODE.TXT, disea un programa que pida el nombre de un estado y devuelva su cdigo postal. El fichero ZIPCODE.TXT es un fichero de texto con la siguiente estructura: Cada lnea est formada por un cdigo postal de 5 dgitos, un carcter \t', y el nombre del estado. Ejemplo del contenido del archivo de texto:

    33010 FLORIDA 70118 NEW ORLEANS 70001 METAIRIE

    13. Escribir un programa llamado buscador que permita buscar palabras en un fichero de texto. Como resultado se visualizar el nmero de lnea y contenido de la misma, para cada una de las lneas del fichero que contenga la palabra buscada.

    14. Se tiene un fichero tipo texto conteniendo en cada lnea el nombre del alumno y la calificacin obtenida en lenguaje de programacin 2. Escribir un programa que permita mostrar la nota de un alumno en base a su nombre.