Archivos ● Definición... ok ● Todo archivo en general tiene: ● Ruta (camino) – PATH – ubicación en sist. de archivos ● Nombre (que lo diferencia de los demás) ● ● ● Extensión - Según la extensión el SO asocia una aplicación p.eg .doc se asocia word, .xls se asocia excel. Tipos: ● Texto plano – Entendidos por humanos - .c ● Binarios - Entendido por las máquinas - .out ó .exe ¿Cuantos caracteres tiene el siguiente archivo? Manejo de archivos en C: 1. Crear el flujo (puntero) del tipo FILE * Eg FILE *fp; 2. Conocer nombre, extensión y ruta del archivo 1.Dato 2.Pedido por teclado 3. Unir 1 y 2. Abrir el archivo utilizando la función fopen y asignándole el resultado de la llamada a nuestro flujo (ptro) 4. Jugar con el archivo ( R/W el archivo). 5. Desunir 1 y 2 (Cerrar el archivo utilizando la función fclose) fopen() FILE * fopen (const char *nombre, const char *modo); ● ● ● Si NO existe error ubica el flujo en el primer byte del archivo y resultado el almacenado en el flujo. Si existe error retorna NULL. En la cadena nombre se debe colocar la ruta (ubicación del archivo) si se omite, tomará o creará el archivo del directorio(actual) donde este el ejecutable. Modo de texto ● ● ● ● ● ● "r" ó “rt” : abrir un archivo para lectura, el archivo debe existir. "w" ó “wt”: abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe. ( en ambos casos en archivo ocupa 0By) "a" ó “at”: abrir un archivo para escritura al final del contenido, si no existe se crea. "r+" ó “r+t” : abrir un archivo para lectura y escritura, el fichero debe existir. "w+" ó “w+t” : crear un archivo para lectura y escritura, se crea si no existe o se sobreescribe si existe. Modo binario ● ● ● “rb” : abrir un archivo para lectura, el archivo debe existir. “wb”: abrir un archivo para escritura, se crea si no existe o se sobreescribe si existe. ( en ambos casos en archivo ocupa 0By) “ab”: abrir un archivo para escritura al final del contenido, si no existe se crea. fclose() int fclose (FILE *stream); ● Cierra el flujo ● P eg. fclose(fp); Leer (R) ● Caracter ● ● Cadenas ● ● char fgetc(FILE *archivo); fgets(char *cadena, int tamaño, FILE *archivo); Enteros o reales ● fscanf(flujo,fmt,dir de vble) Escribir (W) ● Cadenas, enteros o reales ● fprintf(flujo,fmt(s),vble(s)); Otras (Ubicacion) ● Retornar el flujo al primer byte ● ● rewind(flujo); Ubicar el flujo ● int fseek( FILE *flujo, int desplto, int origen); – El origen puede ser: ● ● ● ● SEEK_SET (desde el principio) SEEK_CUR (desde la posición actual, desplto negativo) SEEK_END (desde el final, desplto negativo) Determinar si el flujo encontró el final ● int feof(FILE *fichero); – La función feof siempre devolverá cero (Falso) si no es encontrado EOF en el archivo, de lo contrario regresará un valor distinto de cero (Verdadero).