SlideShare une entreprise Scribd logo
1  sur  41
Archivos de Datos en Lenguaje C Prof. Nakary Ortega de Sánchez Cumaná, Enero de 2006
Archivos de Datos en  Lenguaje C El almacenamiento en variables y arreglos es temporal Introducción Existen aplicaciones que deben guardar grandes volúmenes de datos de manera permanente Se hace necesario el uso de dispositivos de almacenamiento secundario como archivos de datos
Archivos de Datos en  Lenguaje C Desarrollar programas en lenguaje C para el procesamiento de transacciones de archivos de datos Objetivo General
Archivos de Datos en  Lenguaje C ,[object Object],[object Object],[object Object],[object Object],Objetivos Específicos
¿Qué es un Archivo de Datos? Es una colección de registros relacionados entre sí con aspectos en común y organizados para un propósito específico. ,[object Object],El archivo de nómina del personal docente del IUT-Cumaná.
¿Qué es un Archivo de Datos? Estructura diseñada para contener datos. Dichos datos están organizados de tal modo que puedan ser recuperados, actualizados o borrados y almacenados nuevamente con todos los cambios realizados. Nota:  Lenguaje C esta diseñado para manejar los archivos de datos como secuencia (flujo) que son independiente del dispositivo.
¿Qué es un Flujo o Secuencia? Es una abstracción que se refiere a una corriente de datos que fluye (viaja) entre un  origen  y un  destino . Entre el origen y el destino debe existir una  conexión  por la cual circulen los datos Origen Destino Flujo de Datos Conexión
¿Qué es un Flujo o Secuencia? Ejemplo: Cuando se realiza una función  scanf(“%d”,&nota),  se toma el valor introducido desde teclado ( origen ), se pasa al buffer stdin ( conexión ) y de hay a la memoria ( destino )  Teclado Memoria nota Buffer stdin
Tipos de Secuencias en C Secuencias Texto Binarias Conjunto de caracteres colocados uno tras otro organizados en líneas terminadas por el carácter salto de línea. Conjunto bytes uno tras otro con correspondencia una a uno con los del dispositivo.
Tipos de Archivos en C Archivos Secuenciales (Texto) Binarios (Registro) Son secuencia de caracteres. Son secuencia de ceros y unos. Nota:  Lenguaje C, realiza el acceso a los archivos a través de un buffer intermedio.
Puntero FILE Nota:  La  primera operación  a realizar antes de procesar archivos es  establecer un área de buffer , donde la información se  almacena temporalmente  mientras se esta transfiriendo entre la  memoria  del computador y  el archivo de datos . El área se establece a través de la siguiente instrucción: FILE *puntero_archivo;
Puntero FILE Donde :   FILE ,  es un tipo especial de estructura que permite establecer el área de buffer.   puntero_archivo ,  es una variable puntero, que indica el inicio de esta área. FILE *puntero_archivo;
Apertura de un Archivo de Datos Nota:  La  segunda operación  a realizar antes de procesar archivos es  abrir  el archivo. La apertura del archivo supone conectar el archivo físico (externo) con el programa e indicar como va a ser tratado. La función  fopen() , permite abrir una secuencia para que pueda ser utilizada y vinculada con un archivo. Esta función devuelve  NULL  en caso de algún error. fopen(nombre_archivo, modo);
Apertura de un Archivo de Datos Donde :   nombre_archivo ,  es una cadena de caracteres que representa el nombre con el cual será referenciado el archivo en el programa.   modo , es una cadena de caracteres que representa cómo será utilizado el archivo . fopen(nombre_archivo, modo);
Apertura de un Archivo de Datos El modo puede ser una de las cadenas mostradas en la tabla a continuación : Archivos Secuenciales fopen(nombre_archivo, modo); Abre o Crea un archivo de texto para añadir información. al final. Sino existe, funciona como w+ a+ Crea un archivo de texto para lectura / escritura. w+ Abre un archivo de texto para lectura / escritura. r+ Abre un archivo de texto para añadir información al final. Sino existe, funciona como w. a Crea un archivo de texto para escritura. w Abre un archivo de texto para lectura. r DESCRIPCIÓN VALOR MODOS DE APERTURA
Apertura de un Archivo de Datos El modo puede ser una de las cadenas mostradas en la tabla a continuación : Archivos Binarios fopen(nombre_archivo, modo); Abre o Crea un archivo binario para añadir información. al final. Sino existe, funciona como w+b a+b Crea un archivo binario para lectura / escritura. w+b Abre un archivo binario para lectura / escritura. r+b Abre un archivo de binario para añadir información al final. Sino existe, funciona como w. ab Crea un archivo binario para escritura. wb Abre un archivo binario para lectura. rb DESCRIPCIÓN VALOR MODOS DE APERTURA
Cierre de un Archivo de Datos Nota:  Una vez terminadas las operaciones de escritura y lectura en un archivo hay que cerrar la secuencia. La función  fclose() , permite cerrar una secuencia vinculada con un archivo. fclose(nombre_archivo);
Cierre de un Archivo de Datos También puede emplearse la función  fcloseall() , que permite cerrar todas las secuencia vinculada con todos los archivo que se encuentran abiertos. fcloseall(); Nota:  ambas funciones escriben la información que todavía se encuentra en el buffer y cierra el (los) archivos (s) a nivel de MS-DOS. La cabecera utilizada es  <stdio.h>
Apertura y Cierre de un Archivo de Datos Ejemplo: #include <stdio.h> void main(void){ FILE *punt_fich; clrscr(); if(( punt_fich=fopen(&quot;hla.txt&quot;,&quot;a&quot;) )== NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } . . operaciones lectura/escritura . . fclose(punt_fich) ; }
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fputc/putc : Escribe  un carácter  en el  archivo abierto por el puntero  que se pone como parámetro.  Si todo se produce correctamente la función devuelve el propio carácter,  si hay algún error devuelve   EOF .  La cabecera que utiliza es  <stdio.h>
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fputc/putc : La sintaxis para estas funciones es la siguiente: fputc(variable_char,puntero_archivo); fputc(‘carácter’,puntero_archivo);  putc(variable_char,puntero_archivo); putc(‘carácter’,puntero_archivo);
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fputs Escribe el  contenido de la cadena  puesta como primer parámetro de la función. El carácter nulo no se escribe en el fichero.  Si se produce algún error devuelve  EOF  y si todo va bien devuelve un  valor no negativo .  La cabecera que utiliza es  <stdio.h>
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fputs : La sintaxis para estas función es la siguiente: fputs(variable_cadena,puntero_archivo); fputs(“texto”,puntero_archivo);
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fprintf Escribe en el fichero  cualquier tipo de valor, cadenas, números y caracteres . Esta función tiene el mismo formato que printf.  Hay que indicarle  el puntero, el identificador de formato y nombre de la variables o variables a escribir .  La cabecera que utiliza es  <stdio.h>
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fprintf : La sintaxis para estas función es la siguiente: fprintf(puntero_archivo,“texto”);   fprintf(puntero_archivo“identificador”,var); fprintf(puntero_arc,“ident(es)_formato”,variable(s))  ;
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES #include <stdio.h> #include <string.h> void letra(void); void frase(void); FILE *punt_fich; void main(void){ int opt; if(( punt_fich=fopen(&quot;hla.txt&quot;,“a&quot;))==NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } printf(&quot;1.INTRODUCIR LETRA A LETRA&quot;); printf(&quot;2.INTRODUCIR CADENA A CADENA&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%d&quot;,&opt); fflush(stdin); clrscr(); switch(opt){ case 1: letra(); break; case 2: frase(); break; } fclose(punt_fich); }
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  SECUENCIALES void letra(void){ char t;   do{ printf(&quot;:&quot;); t=getchar(); fputc(t,punt_fich); fflush(stdin);   }while(strcmp(t,&quot;$&quot;)); } void frase(void){ char *frase; do{ printf(&quot;:&quot;); gets(frase); fprintf(punt_fich,&quot;%s&quot;,frase); // fputs(frase,punt_fich); fflush(stdin); }while(strcmp(frase,&quot;$&quot;)); }
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fgetc/fget Devuelve el carácter leído del fichero e incrementa el indicador de posición del archivo. Todos los valores que lee los transforma a carácter.    Si se llega al final del fichero la función devuelve  EOF .  La cabecera que utiliza es  <stdio.h>
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fgetc/fget La sintaxis para estas función es la siguiente: var_char = fgetc(puntero_archivo); var_char = getc(puntero_archivo);
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fgets: Lee un  determinado número de caracteres  de un archivo y los pasa a una variable de tipo cadena.  Lee caracteres hasta que encuentra un salto de línea, un  EOF  o  la longitud especificada en la función.   Si se produce un error devuelve un puntero NULL.  La cabecera que utiliza es  <stdio.h>
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES Función   fgets La sintaxis para estas función es la siguiente: fgets(variable_cadena,tamaño,puntero_archivo);
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES #include <stdio.h> void letra(void); void frase(void); FILE *punt_fich; void main(void){ int opt; clrscr(); if(( punt_fich=fopen(&quot;hla.txt&quot;,&quot;r&quot;))==NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } printf(&quot;1.LEER LETRA A LETRA&quot;); printf(&quot;2.LEER CADENAS&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%d&quot;,&opt); fflush(stdin); switch(opt){ case 1: letra(); break; case 2: frase(); break; } getch(); fclose(punt_fich); }
Funciones para la  LECTURA  de caracteres y cadenas en archivos  SECUENCIALES void letra(void){ char t=0; do{ t=getc(punt_fich); printf(&quot;%c&quot;,t); }while( t!=EOF ); } void frase(void){ char frase[31]; fgets(frase,30,punt_fich); printf(&quot;%s&quot;,frase); }
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  BINARIOS Función   fwrite: Escribe los datos de una estructura a un fichero binario e incrementa la posición del archivo en el número de caracteres escritos.  La cabecera que utiliza es  <stdio.h>   La sintaxis para estas función es la siguiente: fwrite(&eti_estru,tamaño_estru,nº_reg,punter_arc);
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  BINARIOS Función   fread: Lee registros de un fichero binario, cada uno del tamaño especificado en la función y los sitúa en la estructura indicada en primer termino de la función.  Además de leer los registros incrementa la posición del fichero.  La cabecera que utiliza es  <stdio.h>
Funciones para la  ESCRITURA  de caracteres y cadenas en archivos  BINARIOS Función   fread: La sintaxis para estas función es la siguiente: fread(&eti_estru,tamaño_estru,nº_reg,punter_arc);
Funciones para la  LECTURA/ESCRITURA  de caracteres y cadenas en archivos  BINARIOS #include<stdio.h> #include<ctype.h> void altas(void); void muestra(void); FILE *fich; struct ficha{ int  código; char nombre[25]; char direcion[40]; int  edad; } cliente;
Funciones para la  LECTURA/ESCRITURA  de caracteres y cadenas en archivos  BINARIOS void main(void) { char opcion; if(( fich=fopen(&quot;gestion.dat&quot;,&quot;a+b&quot;))==NULL ) { printf(&quot;Error al crear fichero&quot;); exit(0); } do{ clrscr(); printf(&quot;Altas&quot;); printf(&quot;Consulta&quot;); printf(&quot;Salir&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%c&quot;,&opcion); fflush(stdin); switch(toupper(opcion)){ case 'A': altas(); break; case 'C': muestra(); break; } }while(toupper(opcion)!='S'); fclose(fich); }
Funciones para la  LECTURA/ESCRITURA  de caracteres y cadenas en archivos  BINARIOS void altas(void){ clrscr(); printf(&quot;Código: &quot;); scanf(&quot;%d&quot;,& cliente.codigo ); fflush(stdin); printf(&quot;Nombre: &quot;); gets( cliente.nombre ); fflush(stdin); printf(&quot;Direccion: &quot;); gets(cliente.direcion); fflush(stdin); printf(&quot;Edad: &quot;); scanf(&quot;%d&quot;,& cliente.edad ); fflush(stdin); fwrite(&cliente,sizeof(cliente),1,fich); }
Funciones para la  LECTURA/ESCRITURA  de caracteres y cadenas en archivos  BINARIOS void muestra(void){ int cod_temp; clrscr(); rewind(fich); printf(&quot;Código a mostrar:&quot;); scanf(&quot;%d&quot;,&cod_temp); while(!feof(fich)){ fread(&cliente,sizeof(cliente),1,fich); if(cod_temp==cliente.codigo){ printf(&quot;Código: %d&quot;,cliente.codigo); printf(&quot;Nombre: %s&quot;,cliente.nombre); printf(&quot;Direc: %s&quot;,cliente.direcion); printf(&quot;Edad: %d&quot;,cliente.edad); getch(); break; } } }
PREGUNTAS

Contenu connexe

Tendances

Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
Jessica Suarez
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
Boris Salleg
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
Boris Salleg
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
fher969
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
ANDRES SALAZAR
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoria
Mari Cruz
 

Tendances (20)

Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
 
Sistema de Archivos
Sistema de ArchivosSistema de Archivos
Sistema de Archivos
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
conceptos de Punteros y Nodos
conceptos de Punteros y Nodosconceptos de Punteros y Nodos
conceptos de Punteros y Nodos
 
Tabla de símbolos
Tabla de símbolosTabla de símbolos
Tabla de símbolos
 
Algoritmo de listas simples completo
Algoritmo de listas simples  completoAlgoritmo de listas simples  completo
Algoritmo de listas simples completo
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
Base de de datos( historia y sus tipos)
Base de de datos( historia y sus tipos)Base de de datos( historia y sus tipos)
Base de de datos( historia y sus tipos)
 
Seguridad en los sistemas de archivos
Seguridad en los sistemas de archivosSeguridad en los sistemas de archivos
Seguridad en los sistemas de archivos
 
Comparacion pe y poo
Comparacion pe y pooComparacion pe y poo
Comparacion pe y poo
 
Archivos secuenciales en PYTHON
Archivos secuenciales en PYTHONArchivos secuenciales en PYTHON
Archivos secuenciales en PYTHON
 
Sistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoriaSistemas Operativos I-Particionamiento de memoria
Sistemas Operativos I-Particionamiento de memoria
 
Particiones EstáTicas
Particiones EstáTicasParticiones EstáTicas
Particiones EstáTicas
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
Acceso Directo de Memoria
Acceso Directo de MemoriaAcceso Directo de Memoria
Acceso Directo de Memoria
 

En vedette

Sistemade ficheros
Sistemade ficherosSistemade ficheros
Sistemade ficheros
25nsm25
 
Archivos de Registros
Archivos de RegistrosArchivos de Registros
Archivos de Registros
Javier Rivera
 
Archivos secuenciales
Archivos secuencialesArchivos secuenciales
Archivos secuenciales
sekt07
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexado
dexter120
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
favi_hola
 
Nomina I: Deducciones
Nomina I: DeduccionesNomina I: Deducciones
Nomina I: Deducciones
Henry Salom
 
Administracion archivos sena
Administracion archivos senaAdministracion archivos sena
Administracion archivos sena
giovatovar
 

En vedette (15)

Localizacion
LocalizacionLocalizacion
Localizacion
 
Sistemade ficheros
Sistemade ficherosSistemade ficheros
Sistemade ficheros
 
Arquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecuciónArquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecución
 
Archivos de Registros
Archivos de RegistrosArchivos de Registros
Archivos de Registros
 
Manejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje CManejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje C
 
Nomina y calculo de prestaciones sociales
Nomina y calculo de prestaciones socialesNomina y calculo de prestaciones sociales
Nomina y calculo de prestaciones sociales
 
Aspel NOI | Sistema de Nómina
Aspel NOI | Sistema de NóminaAspel NOI | Sistema de Nómina
Aspel NOI | Sistema de Nómina
 
Archivos secuenciales
Archivos secuencialesArchivos secuenciales
Archivos secuenciales
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexado
 
Archivo Secuencial-Indexado
Archivo Secuencial-IndexadoArchivo Secuencial-Indexado
Archivo Secuencial-Indexado
 
Archivo secuencial-indexado
Archivo secuencial-indexadoArchivo secuencial-indexado
Archivo secuencial-indexado
 
Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Nomina I: Deducciones
Nomina I: DeduccionesNomina I: Deducciones
Nomina I: Deducciones
 
Administracion archivos sena
Administracion archivos senaAdministracion archivos sena
Administracion archivos sena
 

Similaire à Objetivo 01 Archivos de Texto

Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
Whaleejaa Wha
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
tacubomx
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
die_dex
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
taniarodri
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
mauro0210
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
Darwin Durand
 

Similaire à Objetivo 01 Archivos de Texto (20)

Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Archivo de datos
Archivo de datosArchivo de datos
Archivo de datos
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 
Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 
Fichc
FichcFichc
Fichc
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
Archivos
ArchivosArchivos
Archivos
 
03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf
 

Dernier

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
pvtablets2023
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 

Dernier (20)

Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 

Objetivo 01 Archivos de Texto

  • 1. Archivos de Datos en Lenguaje C Prof. Nakary Ortega de Sánchez Cumaná, Enero de 2006
  • 2. Archivos de Datos en Lenguaje C El almacenamiento en variables y arreglos es temporal Introducción Existen aplicaciones que deben guardar grandes volúmenes de datos de manera permanente Se hace necesario el uso de dispositivos de almacenamiento secundario como archivos de datos
  • 3. Archivos de Datos en Lenguaje C Desarrollar programas en lenguaje C para el procesamiento de transacciones de archivos de datos Objetivo General
  • 4.
  • 5.
  • 6. ¿Qué es un Archivo de Datos? Estructura diseñada para contener datos. Dichos datos están organizados de tal modo que puedan ser recuperados, actualizados o borrados y almacenados nuevamente con todos los cambios realizados. Nota: Lenguaje C esta diseñado para manejar los archivos de datos como secuencia (flujo) que son independiente del dispositivo.
  • 7. ¿Qué es un Flujo o Secuencia? Es una abstracción que se refiere a una corriente de datos que fluye (viaja) entre un origen y un destino . Entre el origen y el destino debe existir una conexión por la cual circulen los datos Origen Destino Flujo de Datos Conexión
  • 8. ¿Qué es un Flujo o Secuencia? Ejemplo: Cuando se realiza una función scanf(“%d”,&nota), se toma el valor introducido desde teclado ( origen ), se pasa al buffer stdin ( conexión ) y de hay a la memoria ( destino ) Teclado Memoria nota Buffer stdin
  • 9. Tipos de Secuencias en C Secuencias Texto Binarias Conjunto de caracteres colocados uno tras otro organizados en líneas terminadas por el carácter salto de línea. Conjunto bytes uno tras otro con correspondencia una a uno con los del dispositivo.
  • 10. Tipos de Archivos en C Archivos Secuenciales (Texto) Binarios (Registro) Son secuencia de caracteres. Son secuencia de ceros y unos. Nota: Lenguaje C, realiza el acceso a los archivos a través de un buffer intermedio.
  • 11. Puntero FILE Nota: La primera operación a realizar antes de procesar archivos es establecer un área de buffer , donde la información se almacena temporalmente mientras se esta transfiriendo entre la memoria del computador y el archivo de datos . El área se establece a través de la siguiente instrucción: FILE *puntero_archivo;
  • 12. Puntero FILE Donde : FILE , es un tipo especial de estructura que permite establecer el área de buffer. puntero_archivo , es una variable puntero, que indica el inicio de esta área. FILE *puntero_archivo;
  • 13. Apertura de un Archivo de Datos Nota: La segunda operación a realizar antes de procesar archivos es abrir el archivo. La apertura del archivo supone conectar el archivo físico (externo) con el programa e indicar como va a ser tratado. La función fopen() , permite abrir una secuencia para que pueda ser utilizada y vinculada con un archivo. Esta función devuelve NULL en caso de algún error. fopen(nombre_archivo, modo);
  • 14. Apertura de un Archivo de Datos Donde : nombre_archivo , es una cadena de caracteres que representa el nombre con el cual será referenciado el archivo en el programa. modo , es una cadena de caracteres que representa cómo será utilizado el archivo . fopen(nombre_archivo, modo);
  • 15. Apertura de un Archivo de Datos El modo puede ser una de las cadenas mostradas en la tabla a continuación : Archivos Secuenciales fopen(nombre_archivo, modo); Abre o Crea un archivo de texto para añadir información. al final. Sino existe, funciona como w+ a+ Crea un archivo de texto para lectura / escritura. w+ Abre un archivo de texto para lectura / escritura. r+ Abre un archivo de texto para añadir información al final. Sino existe, funciona como w. a Crea un archivo de texto para escritura. w Abre un archivo de texto para lectura. r DESCRIPCIÓN VALOR MODOS DE APERTURA
  • 16. Apertura de un Archivo de Datos El modo puede ser una de las cadenas mostradas en la tabla a continuación : Archivos Binarios fopen(nombre_archivo, modo); Abre o Crea un archivo binario para añadir información. al final. Sino existe, funciona como w+b a+b Crea un archivo binario para lectura / escritura. w+b Abre un archivo binario para lectura / escritura. r+b Abre un archivo de binario para añadir información al final. Sino existe, funciona como w. ab Crea un archivo binario para escritura. wb Abre un archivo binario para lectura. rb DESCRIPCIÓN VALOR MODOS DE APERTURA
  • 17. Cierre de un Archivo de Datos Nota: Una vez terminadas las operaciones de escritura y lectura en un archivo hay que cerrar la secuencia. La función fclose() , permite cerrar una secuencia vinculada con un archivo. fclose(nombre_archivo);
  • 18. Cierre de un Archivo de Datos También puede emplearse la función fcloseall() , que permite cerrar todas las secuencia vinculada con todos los archivo que se encuentran abiertos. fcloseall(); Nota: ambas funciones escriben la información que todavía se encuentra en el buffer y cierra el (los) archivos (s) a nivel de MS-DOS. La cabecera utilizada es <stdio.h>
  • 19. Apertura y Cierre de un Archivo de Datos Ejemplo: #include <stdio.h> void main(void){ FILE *punt_fich; clrscr(); if(( punt_fich=fopen(&quot;hla.txt&quot;,&quot;a&quot;) )== NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } . . operaciones lectura/escritura . . fclose(punt_fich) ; }
  • 20. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fputc/putc : Escribe un carácter en el archivo abierto por el puntero que se pone como parámetro. Si todo se produce correctamente la función devuelve el propio carácter, si hay algún error devuelve EOF . La cabecera que utiliza es <stdio.h>
  • 21. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fputc/putc : La sintaxis para estas funciones es la siguiente: fputc(variable_char,puntero_archivo); fputc(‘carácter’,puntero_archivo); putc(variable_char,puntero_archivo); putc(‘carácter’,puntero_archivo);
  • 22. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fputs Escribe el contenido de la cadena puesta como primer parámetro de la función. El carácter nulo no se escribe en el fichero. Si se produce algún error devuelve EOF y si todo va bien devuelve un valor no negativo . La cabecera que utiliza es <stdio.h>
  • 23. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fputs : La sintaxis para estas función es la siguiente: fputs(variable_cadena,puntero_archivo); fputs(“texto”,puntero_archivo);
  • 24. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fprintf Escribe en el fichero cualquier tipo de valor, cadenas, números y caracteres . Esta función tiene el mismo formato que printf. Hay que indicarle el puntero, el identificador de formato y nombre de la variables o variables a escribir . La cabecera que utiliza es <stdio.h>
  • 25. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES Función fprintf : La sintaxis para estas función es la siguiente: fprintf(puntero_archivo,“texto”); fprintf(puntero_archivo“identificador”,var); fprintf(puntero_arc,“ident(es)_formato”,variable(s)) ;
  • 26. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES #include <stdio.h> #include <string.h> void letra(void); void frase(void); FILE *punt_fich; void main(void){ int opt; if(( punt_fich=fopen(&quot;hla.txt&quot;,“a&quot;))==NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } printf(&quot;1.INTRODUCIR LETRA A LETRA&quot;); printf(&quot;2.INTRODUCIR CADENA A CADENA&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%d&quot;,&opt); fflush(stdin); clrscr(); switch(opt){ case 1: letra(); break; case 2: frase(); break; } fclose(punt_fich); }
  • 27. Funciones para la ESCRITURA de caracteres y cadenas en archivos SECUENCIALES void letra(void){ char t; do{ printf(&quot;:&quot;); t=getchar(); fputc(t,punt_fich); fflush(stdin); }while(strcmp(t,&quot;$&quot;)); } void frase(void){ char *frase; do{ printf(&quot;:&quot;); gets(frase); fprintf(punt_fich,&quot;%s&quot;,frase); // fputs(frase,punt_fich); fflush(stdin); }while(strcmp(frase,&quot;$&quot;)); }
  • 28. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES Función fgetc/fget Devuelve el carácter leído del fichero e incrementa el indicador de posición del archivo. Todos los valores que lee los transforma a carácter. Si se llega al final del fichero la función devuelve EOF . La cabecera que utiliza es <stdio.h>
  • 29. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES Función fgetc/fget La sintaxis para estas función es la siguiente: var_char = fgetc(puntero_archivo); var_char = getc(puntero_archivo);
  • 30. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES Función fgets: Lee un determinado número de caracteres de un archivo y los pasa a una variable de tipo cadena. Lee caracteres hasta que encuentra un salto de línea, un EOF o la longitud especificada en la función. Si se produce un error devuelve un puntero NULL. La cabecera que utiliza es <stdio.h>
  • 31. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES Función fgets La sintaxis para estas función es la siguiente: fgets(variable_cadena,tamaño,puntero_archivo);
  • 32. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES #include <stdio.h> void letra(void); void frase(void); FILE *punt_fich; void main(void){ int opt; clrscr(); if(( punt_fich=fopen(&quot;hla.txt&quot;,&quot;r&quot;))==NULL ) { printf(&quot;Error en la apertura&quot;); exit(0); } printf(&quot;1.LEER LETRA A LETRA&quot;); printf(&quot;2.LEER CADENAS&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%d&quot;,&opt); fflush(stdin); switch(opt){ case 1: letra(); break; case 2: frase(); break; } getch(); fclose(punt_fich); }
  • 33. Funciones para la LECTURA de caracteres y cadenas en archivos SECUENCIALES void letra(void){ char t=0; do{ t=getc(punt_fich); printf(&quot;%c&quot;,t); }while( t!=EOF ); } void frase(void){ char frase[31]; fgets(frase,30,punt_fich); printf(&quot;%s&quot;,frase); }
  • 34. Funciones para la ESCRITURA de caracteres y cadenas en archivos BINARIOS Función fwrite: Escribe los datos de una estructura a un fichero binario e incrementa la posición del archivo en el número de caracteres escritos. La cabecera que utiliza es <stdio.h> La sintaxis para estas función es la siguiente: fwrite(&eti_estru,tamaño_estru,nº_reg,punter_arc);
  • 35. Funciones para la ESCRITURA de caracteres y cadenas en archivos BINARIOS Función fread: Lee registros de un fichero binario, cada uno del tamaño especificado en la función y los sitúa en la estructura indicada en primer termino de la función. Además de leer los registros incrementa la posición del fichero. La cabecera que utiliza es <stdio.h>
  • 36. Funciones para la ESCRITURA de caracteres y cadenas en archivos BINARIOS Función fread: La sintaxis para estas función es la siguiente: fread(&eti_estru,tamaño_estru,nº_reg,punter_arc);
  • 37. Funciones para la LECTURA/ESCRITURA de caracteres y cadenas en archivos BINARIOS #include<stdio.h> #include<ctype.h> void altas(void); void muestra(void); FILE *fich; struct ficha{ int código; char nombre[25]; char direcion[40]; int edad; } cliente;
  • 38. Funciones para la LECTURA/ESCRITURA de caracteres y cadenas en archivos BINARIOS void main(void) { char opcion; if(( fich=fopen(&quot;gestion.dat&quot;,&quot;a+b&quot;))==NULL ) { printf(&quot;Error al crear fichero&quot;); exit(0); } do{ clrscr(); printf(&quot;Altas&quot;); printf(&quot;Consulta&quot;); printf(&quot;Salir&quot;); printf(&quot;Elegir opcion: &quot;); scanf(&quot;%c&quot;,&opcion); fflush(stdin); switch(toupper(opcion)){ case 'A': altas(); break; case 'C': muestra(); break; } }while(toupper(opcion)!='S'); fclose(fich); }
  • 39. Funciones para la LECTURA/ESCRITURA de caracteres y cadenas en archivos BINARIOS void altas(void){ clrscr(); printf(&quot;Código: &quot;); scanf(&quot;%d&quot;,& cliente.codigo ); fflush(stdin); printf(&quot;Nombre: &quot;); gets( cliente.nombre ); fflush(stdin); printf(&quot;Direccion: &quot;); gets(cliente.direcion); fflush(stdin); printf(&quot;Edad: &quot;); scanf(&quot;%d&quot;,& cliente.edad ); fflush(stdin); fwrite(&cliente,sizeof(cliente),1,fich); }
  • 40. Funciones para la LECTURA/ESCRITURA de caracteres y cadenas en archivos BINARIOS void muestra(void){ int cod_temp; clrscr(); rewind(fich); printf(&quot;Código a mostrar:&quot;); scanf(&quot;%d&quot;,&cod_temp); while(!feof(fich)){ fread(&cliente,sizeof(cliente),1,fich); if(cod_temp==cliente.codigo){ printf(&quot;Código: %d&quot;,cliente.codigo); printf(&quot;Nombre: %s&quot;,cliente.nombre); printf(&quot;Direc: %s&quot;,cliente.direcion); printf(&quot;Edad: %d&quot;,cliente.edad); getch(); break; } } }