1 / 19

Asignatura: Lenguaje de Programación de Sistemas PPT No.05

Asignatura: Lenguaje de Programación de Sistemas PPT No.05. Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura: http://www.jiiea.com/SyPrgLan/ User : sist2014 psw : sist#C10. Administración de archivos: FAT NTFS

Download Presentation

Asignatura: Lenguaje de Programación de Sistemas PPT No.05

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Asignatura: Lenguaje de Programación de Sistemas PPT No.05 Programa vespertino de Ingeniería (E) en Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura: http://www.jiiea.com/SyPrgLan/ User: sist2014 psw: sist#C10

  2. Administración de archivos: • FAT • NTFS C++ provee de las funciones necesarias para escribir y leer archivos

  3. Dispositivos de almacenamiento de datos, en memoria secundaria(discos magnéticos, memorias flash) • La administración de archivos se maneja bajo modalidad FAT o NTFS • C provee las funciones necesarias para escribir o leer archivos en memoria secundaria

  4. E/S de disco (memoria 2aria.) • Condiciones de archivos de disco • El archivo de disco no existe y se quiere crearlo y añadir información • El archivo de disco existe y se quiere extraer información de él • El archivo de disco existe y se quiere añadir más información, conservando la información que ya estaba en él. • El archivo de disco existe y se quiere borrar la información, y agregar información nueva.

  5. Distintos métodos de lectura y escritura de datos

  6. Distintos métodos de …(cont.) • Para todos los casos se usan las siguientes funciones: • FILE *puntero • fopen(nombre_archivo, modo de operación) • fclose(puntero a archivo)

  7. Distintos métodos de …(cont.)

  8. Distintos métodos de …(cont.) Acceso Random Se utiliza la función fseek(p,d,m ) la cual tiene 3 argumentos: p: puntero a archivo, d: desplazamiento, m: modo Modo puede tomar 3 valores • SEEK_SET(0) desplazamiento desde el inicio • SEEK_SET(1)desplazamiento desde posición actual • SEEK_SET(2)desplazamiento desde el final del archivo

  9. Archivos de texto frente a binarios Incide en el rendimiento de la transferencia de los datos. Por ejemplo, se tiene el siguiente número entero: 12345678 Si almacenamos el número como texto 31 32 33 34 35 36 37 38  8 bytes Si almacenamos binario BC614E  3 bytes Por lo cual el ahorro de espacio es considerable

  10. Operaciones sobre archivos “a” Abierto para añadir datos. Los datos se añaden al final del archivo o se crea un archivo nuevo si no existe. “r” Abierto para lectura. El archivo debe existir “w” Abierto para escritura. Los datos son escritos desde el principio, o se crea un nuevo archivo si no existe.

  11. Operaciones sobre archivos(Cont) “a+” Abierto para lectura y añadir datos. Si el archivo no existe, se crea. “r+” Abierto para lectura y escritura. El archivo debe existir. “w+” Abierto para lectura y escritura. Se escribe desde el principio del archivo

  12. Operaciones sobre archivos(Cont) “a+” Abierto para lectura y añadir datos. Si el archivo no existe, se crea. “r+” Abierto para lectura y escritura. El archivo debe existir. “w+” Abierto para lectura y escritura. Se escribe desde el principio del archivo

  13. Ejemplo: escritura de un archivo binario #include "stdafx.h" #include <conio.h> #include <stdio.h> typedefstruct { charnombre_pieza[15]; /* Tipo de pieza. */ int cantidad; /* Número de piezas. */ floatprecio_unitario; /* Precio de cada pieza. */ } tipo_pieza; int _tmain(intargc, _TCHAR* argv[]) { tipo_pieza pieza; /* Variable de tipo tipo_pieza. */ FILE *puntero_a_archivo; /* Puntero a archivo. */ /* Abrir un archivo para escritura. */ puntero_a_archivo = fopen("Piezas00.DAT","wb"); /* Leer datos del usuario. */

  14. do { fflush(stdin); printf("\nNombre de la pieza => "); gets(pieza.nombre_pieza); fflush(stdin); printf("Numero de piezas => "); scanf("%d", &pieza.cantidad); fflush(stdin); printf("Precio de cada pieza => "); scanf("%f", &pieza.precio_unitario); fflush(stdin); /* Escribir la estructura al archivo. */ fwrite(&pieza, sizeof(pieza), 1, puntero_a_archivo); printf("Quiere introducir mas piezas (s/n)? => "); } while (getche() == 's'); /* Cerrar el archivo abierto. */ fclose(puntero_a_archivo); return 0;

  15. Ejemplo: lectura de un archivo binario #include "stdafx.h" #include <stdio.h> #include <conio.h> typedefstruct { charnombre_pieza[15]; /* Tipo de pieza. */ int cantidad; /* Número de piezas. */ floatprecio_unitario; /* Precio de cada pieza. */ } tipo_pieza; int _tmain(intargc, _TCHAR* argv[]) { tipo_pieza pieza; /* Variable de tipo tipo_pieza. */ FILE *puntero_a_archivo; /* Puntero a archivo. */ /* Abrir un archivo para lectura. */ puntero_a_archivo = fopen("Piezas00.DAT","rb");

  16. /* Leer datos del archivo y mostrarlos por pantalla */ while(fread(&pieza, sizeof(pieza), 1, puntero_a_archivo)==1) { printf("\nNombre de la pieza => %s\n", pieza.nombre_pieza); printf("Numero de piezas => %d\n", pieza.cantidad); printf("Precio de cada pieza => %f\n", pieza.precio_unitario); } /* Cerrar el archivo abierto. */ fclose(puntero_a_archivo); getch(); return 0; }

  17. Ejemplo: lectura Random #include <stdio.h> #include <process.h> #include <stdlib.h> #include <conio.h> typedefstruct { charnombre_pieza[15]; /* Tipo de pieza. */ intcantidad; /* Número de piezas. */ floatprecio_unitario; /* Precio de cada pieza. */ } tipo_pieza; voidmain() { tipo_piezapieza; /* Variable de tipo tipo_pieza. */ FILE *puntero_a_archivo; /* Puntero a archivo. */ intnum_registro; /* Número de registro. */ longint desplazamiento; /* Desplazamiento del registro. */ clrscr(); /* Abrir el archivo para lectura. */ if ((puntero_a_archivo = fopen("PIEZAS00.DAT","r")) == NULL) { printf("No puedo abrir el archivo PIEZAS00.DAT\n"); exit(-1); } }

  18. Lectura Random (Cont) /* Leer el número de registro...starts at zro */ printf("Introduzca el numero de registro => "); scanf("%d", &num_registro); /* Calcular el desplazamiento del registro seleccionado. */ desplazamiento = num_registro * sizeof(pieza); /* Situarse en el lugar requerido */ if (fseek(puntero_a_archivo, desplazamiento, 0) != 0) { printf("El puntero ha superado el limite del archivo."); exit(-1); } /* Leer del archivo los datos seleccionados. */ fread(&pieza, sizeof(pieza), 1, puntero_a_archivo); /* Mostrar los datos del archivo. */ printf("\nNombre de la pieza => %s\n", pieza.nombre_pieza); printf("Numero de piezas => %d\n", pieza.cantidad); printf("Precio de cada pieza => %f\n", pieza. precio_unitario); getch(); /* Cerrar el archivo abierto. */ fclose(puntero_a_archivo);

  19. Fin C_Fund05.pptx

More Related