SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
7. Manejo de Archivos en C.
Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las
grandes cantidades de datos se almacenan normalmente en un dispositivo de memoria secundaria. Estas
colecciones de datos se conocen como archivos (antiguamente ficheros).
Un archivo es un conjunto de datos estructurados en una colección de entidades elementales o básicas
denominadas registros que son de igual tipo y constan a su vez de diferentes entidades de nivel más bajos
denominadas campos.
Hay dos tipos de archivos, archivos de texto y archivos binarios. Un archivo de texto es una secuencia de
caracteres organizadas en líneas terminadas por un carácter de nueva línea. En estos archivos se pueden
almacenar canciones, fuentes de programas, base de datos simples, etc. Los archivos de texto se caracterizan por
ser planos, es decir, todas las letras tienen el mismo formato y no hay palabras subrayadas, en negrita, o letras de
distinto tamaño o ancho.
Un archivo binario es una secuencia de bytes que tienen una correspondencia uno a uno con un dispositivo
externo. Así que no tendrá lugar ninguna traducción de caracteres. Además, el número de bytes escritos (leídos)
será el mismo que los encontrados en el dispositivo externo. Ejemplos de estos archivos son Fotografías, imágenes,
texto con formatos, archivos ejecutables (aplicaciones), etc.
En c, un archivo es un concepto lógico que puede aplicarse a muchas cosas desde archivos de disco hasta
terminales o una impresora. Se asocia una secuencia con un archivo especifico realizando una operación de
apertura. Una vez que el archivo está abierto, la información puede ser intercambiada entre este y el programa.
Se puede conseguir la entrada y la salida de datos a un archivo a través del uso de la biblioteca de
funciones; C no tiene palabras claves que realicen las operaciones de E/S. La siguiente tabla da un breve resumen
de las funciones que se pueden utilizar. Se debe incluir la librería STDIO.H. Observe que la mayoría de las
funciones comienzan con la letra “F”, esto es un vestigio del estándar C de Unix.
Nombre Función
fopen() Abre un archivo.
fclose() Cierra un archivo.
fgets() Lee una cadena de un archivo.
fputs() Escribe una cadena en un archivo
fseek() Busca un byte especifico de un archivo.
fprintf() Escribe una salida con formato en el archivo.
fscanf() Lee una entrada con formato desde el archivo.
feof() Devuelve cierto si se llega al final del archivo.
ferror() Devuelve cierto si se produce un error.
rewind() Coloca el localizador de posición del archivo al principio del mismo.
remove() Borra un archivo.
fflush() Vacía un archivo.
El puntero a un archivo.
El puntero a un archivo es el hilo común que unifica el sistema de E/S con buffer. Un puntero a un archivo es
un puntero a una información que define varias cosas sobre él, incluyendo el nombre, el estado y la posición actual
del archivo. En esencia identifica un archivo especifico y utiliza la secuencia asociada para dirigir el funcionamiento
de las funciones de E/S con buffer. Un puntero a un archivo es una variable de tipo puntero al tipo FILE que se
define en STDIO.H. Un programa necesita utilizar punteros a archivos para leer o escribir en los mismos. Para
obtener una variable de este tipo se utiliza una secuencia como esta:
FILE *F;
Apertura de un archivo.
La función fopen() abre una secuencia para que pueda ser utilizada y la asocia a un archivo. Su prototipo es:
FILE *fopen(const char nombre_archivo, cost charmodo);
Donde nombre_archivo es un puntero a una cadena de caracteres que representan un nombre valido del
archivo y puede incluir una especificación del directorio. La cadena a la que apunta modo determina como se abre el
archivo. La siguiente tabla muestra los valores permitidos para modo.
Modo Significado
r Abre un archivo de texto para lectura.
w Crea un archivo de texto para escritura.
a Abre un archivo de texto para añadir.
rb Abre un archivo binario para lectura.
wb Crea un archivo binario para escritura.
ab Abre un archivo binario para añadir.
r+ Abre un archivo de texto para lectura / escritura.
w+ Crea un archivo de texto para lectura / escritura.
a+ Añade o crea un archivo de texto para lectura / escritura.
r+b Abre un archivo binario para lectura / escritura.
w+b Crea un archivo binario para lectura / escritura.
a+b Añade o crea un archivo binario para lectura / escritura.
La función fopen() devuelve un puntero a archivo. Un programa nunca debe alterar el valor de ese puntero.
Si se produce un error cuando se esta intentando abrir un archivo, fopen() devuelve un puntero nulo.
Se puede abrir un archivo bien en modo texto o binario. En la mayoría de las implementaciones, en modo
texto, la secuencias de retorno de carro / salto de línea se convierten a caracteres de salto de línea en lectura. En la
escritura, ocurre lo contrario: los caracteres de salto de línea se convierten en salto de línea. Estas conversiones no
ocurren en archivos binarios.
La macro NULL está definida en STDIO.H. Este método detecto cualquier error al abrir un archivo: como por
ejemplo disco lleno o protegido contra escritura antes de comenzar a escribir en él.
Si se usa fopen() para abrir un archivo para escritura, entonces cualquier archivo existente con el mismo
nombre se borrará y se crea uno nuevo. Si no existe un archivo con el mismo nombre, entonces se creará. Si se
quiere añadir al final del archivo entonces debe usar el modo a. Si se usa a y no existe el archivo, se devolverá un
error. La apertura de un archivo para las operaciones de lectura requiere que exista el archivo. Si no existe, fopen()
devolverá un error. Finalmente, sus se abre un archivo para las operaciones de leer / escribir, la computadora no lo
borrará si existe; sin embargo, si no existe, la computadora lo creará.
Cierre de un archivo.
La función fclose() cierra una secuencia que fue abierta mediante una llamada a fopen(). Escribe toda la
información que todavía se encuentre en el buffer en el disco y realiza un cierre formal del archivo a nivel del sistema
operativo. Un error en el cierre de una secuencia puede generar todo tipo de problemas, incluyendo la pérdida de
datos, destrucción de archivos y posibles errores intermitentes en el programa. El prototipo de esta función es:
int fclose(FILE *F);
Donde F es el puntero al archivo devuelto por la llamada a fopen(). Si se devuelve un valor cero significa
que la operación de cierre ha tenido éxito. Generalmente, esta función solo falla cuando un disco se ha retirado antes
de tiempo o cuando no queda espacio libre en el mismo.
Para introducir u obtener datos de un archivo tenemos las siguientes cuatro funciones:
fprintf() y fscanf()
Estas funciones se comportan exactamente como prinft() y scanf() discutidas anteriormente, excepto que
operan sobre archivo. Sus prototipos son:
int fprintf(FILE *F, const char *cadena_de_control, .....);
int fscanf(FILE *F, const char *cadena_de_control, .....);
Donde F es un puntero al archivo devuelto por una llamada a fopen(). fprintf() y fscanf() dirigen sus
operaciones de E/S al archivo al que apunta F.
Las funciones fgets() y fputs() pueden leer y escribir cadenas a o desde los archivos. Los prototipos de
estas funciones son:
char *fputs(char *str, FILE *F);
char *fgets(char *str, int long, FILE *F);
La función puts() escribe la cadena a un archivo especifico. La función fgets() lee una cadena desde el
archivo especificado hasta que lee un carácter de nueva línea o longitud-1 caracteres.
Si se produce un EOF (End of File) la función gets retorna un NULL.
Funcion feof()
Cuando se abre un archivo para entrada binaria, se puede leer un valor entero igual de la marca EOF. Esto
podría hacer que la rutina de lectura indicase una condición de fin de archivo aún cuando el fin físico del mismo no se
haya alcanzado. Para resolver este problema, C incluye la función feof(), que determina cuando se ha alcanzado el
fin del archivo leyendo datos binarios. La función tiene el siguiente prototipo:
int feof(FILE *F);
Su prototipo se encuentra en STDIO.H. Devuelve cierto si se ha alcanzado el final del archivo, en cualquier
otro caso, 0. Por supuesto, se puede aplicar este método a archivos de texto también.
Ahora bien para el ejemplo anterior usted incluirá los datos de la forma:
Nombre del alumno1 nota
Nombre del alumno2 nota
.....
Algunas veces usted necesitara manipular por separado el nombre del alumno y su nota, para esto es
necesario separarlo en campos. Se puede realizar introduciendo caracteres delimitadores entre campo y campo, por
ejemplo:
fprinft(C,”%s;%d n”,nombre,cal);
Esto generara un archivo de tipo:
Nombre del alumno1;nota
Nombre del alumno2;nota
.....
La función rewind() inicializa el indicador de posición, al principio del archivo, indicado por su argumento. Su
prototipo es:
void rewind (FILE *F);
Donde F es un puntero a un archivo válido. Esta función se encuentra en STDIO.H
La función ferror() determina si se ha producido en error en una operación sobre un archivo. Su prototipo
es:
int ferror(FILE *F);
Donde F es un puntero a un archivo válido. Devuelve cierto si se ha producido un error durante la ultima
operación sobre el archivo. En caso contrario, devuelve falso. Debido a que cada operación sobre el archivo
actualiza la condición de error, se debe llamar a ferror() inmediatamente después de la operación de este tipo; si no
se ase así, el error puede perderse. Esta función se encuentra en STDIO.H
La función remove() borra el archivo especificado. Su prototipo es el siguiente:
int remove(char *nombre_archivo);
Devuelve cero si tiene éxito. Si no un valor distinto de cero.
La función fflush() escribe todos los datos almacenados en el buffer sobre el archivo asociado con un
apuntador. Su prototipo es:
int fflush(FILE *F);
Si se llama esta función con un puntero nulo se vacian los buffers de todos los archivos abiertos. Esta
función devuelve cero si tiene éxito, en otro caso, devuelve EOF.

Más contenido relacionado

La actualidad más candente (19)

Manejo archivos
Manejo archivosManejo archivos
Manejo archivos
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Ficheros C++
Ficheros C++Ficheros C++
Ficheros C++
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
ARCHIVOS EN C+
ARCHIVOS EN  C+ARCHIVOS EN  C+
ARCHIVOS EN C+
 
ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
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
 
Utilizacion de archivos en Dev C++
Utilizacion de archivos en Dev C++Utilizacion de archivos en Dev C++
Utilizacion de archivos en Dev C++
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
 
Ficheros cyc++
Ficheros cyc++Ficheros cyc++
Ficheros cyc++
 
Utp pti_s11_archivos
 Utp pti_s11_archivos Utp pti_s11_archivos
Utp pti_s11_archivos
 
Fichc
FichcFichc
Fichc
 
Lectura y-escritura-desde-archivos
Lectura y-escritura-desde-archivosLectura y-escritura-desde-archivos
Lectura y-escritura-desde-archivos
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 

Destacado

Raw Collection Nyers képek 07 Horse Llovak
Raw  Collection  Nyers  képek  07  Horse    LlovakRaw  Collection  Nyers  képek  07  Horse    Llovak
Raw Collection Nyers képek 07 Horse LlovakDI GYULA
 
Plantilla de presentación pat
Plantilla  de  presentación   patPlantilla  de  presentación   pat
Plantilla de presentación patjosebest125
 
Tabla de medidas extras oto'inv'15
Tabla de medidas extras oto'inv'15Tabla de medidas extras oto'inv'15
Tabla de medidas extras oto'inv'15Ph Multimarcas
 
The Finnish incomes policy as corporatist political exchange: development of ...
The Finnish incomes policy as corporatist political exchange: development of ...The Finnish incomes policy as corporatist political exchange: development of ...
The Finnish incomes policy as corporatist political exchange: development of ...Palkansaajien tutkimuslaitos
 
Pro Gradu -työ - Antti Mäkelä
Pro Gradu -työ - Antti MäkeläPro Gradu -työ - Antti Mäkelä
Pro Gradu -työ - Antti MäkeläAntti Mikael M
 
Culture And Language Short Version Feb 18
Culture And Language  Short Version Feb 18Culture And Language  Short Version Feb 18
Culture And Language Short Version Feb 18IraAsherman
 
EKP:n rahapolitiikasta
EKP:n rahapolitiikastaEKP:n rahapolitiikasta
EKP:n rahapolitiikastaSuomen Pankki
 
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtc
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtcII-SDV Arne Krüger - Elastic Search & Patent Information @ mtc
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtcDr. Haxel Consult
 
Computation of a gearbox for a wind power plant
Computation of a gearbox for a wind power plantComputation of a gearbox for a wind power plant
Computation of a gearbox for a wind power plantPietro Galli
 
Sql database object
Sql database objectSql database object
Sql database objectHarry Potter
 
profesor_Arte barroco II
profesor_Arte barroco IIprofesor_Arte barroco II
profesor_Arte barroco IIEditorial Ecir
 

Destacado (17)

Raw Collection Nyers képek 07 Horse Llovak
Raw  Collection  Nyers  képek  07  Horse    LlovakRaw  Collection  Nyers  képek  07  Horse    Llovak
Raw Collection Nyers képek 07 Horse Llovak
 
Plantilla de presentación pat
Plantilla  de  presentación   patPlantilla  de  presentación   pat
Plantilla de presentación pat
 
powerpoint guatemala
powerpoint guatemalapowerpoint guatemala
powerpoint guatemala
 
Tabla de medidas extras oto'inv'15
Tabla de medidas extras oto'inv'15Tabla de medidas extras oto'inv'15
Tabla de medidas extras oto'inv'15
 
The Finnish incomes policy as corporatist political exchange: development of ...
The Finnish incomes policy as corporatist political exchange: development of ...The Finnish incomes policy as corporatist political exchange: development of ...
The Finnish incomes policy as corporatist political exchange: development of ...
 
Americas Avenue
Americas AvenueAmericas Avenue
Americas Avenue
 
Pro Gradu -työ - Antti Mäkelä
Pro Gradu -työ - Antti MäkeläPro Gradu -työ - Antti Mäkelä
Pro Gradu -työ - Antti Mäkelä
 
Richard Isaacs MD
Richard Isaacs MDRichard Isaacs MD
Richard Isaacs MD
 
ArunMF2015
ArunMF2015ArunMF2015
ArunMF2015
 
Web 2
Web 2Web 2
Web 2
 
Culture And Language Short Version Feb 18
Culture And Language  Short Version Feb 18Culture And Language  Short Version Feb 18
Culture And Language Short Version Feb 18
 
EKP:n rahapolitiikasta
EKP:n rahapolitiikastaEKP:n rahapolitiikasta
EKP:n rahapolitiikasta
 
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtc
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtcII-SDV Arne Krüger - Elastic Search & Patent Information @ mtc
II-SDV Arne Krüger - Elastic Search & Patent Information @ mtc
 
Computation of a gearbox for a wind power plant
Computation of a gearbox for a wind power plantComputation of a gearbox for a wind power plant
Computation of a gearbox for a wind power plant
 
Sql database object
Sql database objectSql database object
Sql database object
 
profesor_Arte barroco II
profesor_Arte barroco IIprofesor_Arte barroco II
profesor_Arte barroco II
 
Trabajophp
TrabajophpTrabajophp
Trabajophp
 

Similar a Archivos c

ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C wILFAab
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc X
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSDarwin Durand
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
LENGUAJE C++
LENGUAJE C++LENGUAJE C++
LENGUAJE C++k_tire
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en cdemata
 
Lectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLabLectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLabOswaldo Carlosama
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan Gordillo
 

Similar a Archivos c (14)

Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
Ficheros Php
Ficheros PhpFicheros Php
Ficheros Php
 
LENGUAJE C++
LENGUAJE C++LENGUAJE C++
LENGUAJE C++
 
Archivos
ArchivosArchivos
Archivos
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 
Ficheros
FicherosFicheros
Ficheros
 
Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
Lectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLabLectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLab
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
 
Archivo de datos
Archivo de datosArchivo de datos
Archivo de datos
 

Último

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upnDayronCernaYupanquiy
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)Ricardo705519
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUManuelSosa83
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfvladimirpaucarmontes
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariasusafy7
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONJuan Carlos Meza Molina
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfs7yl3dr4g0n01
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEduardoBriones22
 

Último (20)

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
UNIDAD II 2.pdf ingenieria civil lima upn
UNIDAD  II 2.pdf ingenieria civil lima upnUNIDAD  II 2.pdf ingenieria civil lima upn
UNIDAD II 2.pdf ingenieria civil lima upn
 
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
analisis tecnologico( diagnostico tecnologico, herramienta de toma de deciones)
 
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERUQUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
QUIMICA GENERAL UNIVERSIDAD TECNOLOGICA DEL PERU
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
tesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa mariatesis maíz univesidad catolica santa maria
tesis maíz univesidad catolica santa maria
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSIONCALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
CALCULO SISTEMA DE PUESTA A TIERRA PARA BAJA TENSION Y MEDIA TENSION
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 

Archivos c

  • 1. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de memoria secundaria. Estas colecciones de datos se conocen como archivos (antiguamente ficheros). Un archivo es un conjunto de datos estructurados en una colección de entidades elementales o básicas denominadas registros que son de igual tipo y constan a su vez de diferentes entidades de nivel más bajos denominadas campos. Hay dos tipos de archivos, archivos de texto y archivos binarios. Un archivo de texto es una secuencia de caracteres organizadas en líneas terminadas por un carácter de nueva línea. En estos archivos se pueden almacenar canciones, fuentes de programas, base de datos simples, etc. Los archivos de texto se caracterizan por ser planos, es decir, todas las letras tienen el mismo formato y no hay palabras subrayadas, en negrita, o letras de distinto tamaño o ancho. Un archivo binario es una secuencia de bytes que tienen una correspondencia uno a uno con un dispositivo externo. Así que no tendrá lugar ninguna traducción de caracteres. Además, el número de bytes escritos (leídos) será el mismo que los encontrados en el dispositivo externo. Ejemplos de estos archivos son Fotografías, imágenes, texto con formatos, archivos ejecutables (aplicaciones), etc. En c, un archivo es un concepto lógico que puede aplicarse a muchas cosas desde archivos de disco hasta terminales o una impresora. Se asocia una secuencia con un archivo especifico realizando una operación de apertura. Una vez que el archivo está abierto, la información puede ser intercambiada entre este y el programa. Se puede conseguir la entrada y la salida de datos a un archivo a través del uso de la biblioteca de funciones; C no tiene palabras claves que realicen las operaciones de E/S. La siguiente tabla da un breve resumen de las funciones que se pueden utilizar. Se debe incluir la librería STDIO.H. Observe que la mayoría de las funciones comienzan con la letra “F”, esto es un vestigio del estándar C de Unix. Nombre Función fopen() Abre un archivo. fclose() Cierra un archivo. fgets() Lee una cadena de un archivo. fputs() Escribe una cadena en un archivo fseek() Busca un byte especifico de un archivo. fprintf() Escribe una salida con formato en el archivo. fscanf() Lee una entrada con formato desde el archivo. feof() Devuelve cierto si se llega al final del archivo. ferror() Devuelve cierto si se produce un error. rewind() Coloca el localizador de posición del archivo al principio del mismo. remove() Borra un archivo. fflush() Vacía un archivo.
  • 2. El puntero a un archivo. El puntero a un archivo es el hilo común que unifica el sistema de E/S con buffer. Un puntero a un archivo es un puntero a una información que define varias cosas sobre él, incluyendo el nombre, el estado y la posición actual del archivo. En esencia identifica un archivo especifico y utiliza la secuencia asociada para dirigir el funcionamiento de las funciones de E/S con buffer. Un puntero a un archivo es una variable de tipo puntero al tipo FILE que se define en STDIO.H. Un programa necesita utilizar punteros a archivos para leer o escribir en los mismos. Para obtener una variable de este tipo se utiliza una secuencia como esta: FILE *F; Apertura de un archivo. La función fopen() abre una secuencia para que pueda ser utilizada y la asocia a un archivo. Su prototipo es: FILE *fopen(const char nombre_archivo, cost charmodo); Donde nombre_archivo es un puntero a una cadena de caracteres que representan un nombre valido del archivo y puede incluir una especificación del directorio. La cadena a la que apunta modo determina como se abre el archivo. La siguiente tabla muestra los valores permitidos para modo. Modo Significado r Abre un archivo de texto para lectura. w Crea un archivo de texto para escritura. a Abre un archivo de texto para añadir. rb Abre un archivo binario para lectura. wb Crea un archivo binario para escritura. ab Abre un archivo binario para añadir. r+ Abre un archivo de texto para lectura / escritura. w+ Crea un archivo de texto para lectura / escritura. a+ Añade o crea un archivo de texto para lectura / escritura. r+b Abre un archivo binario para lectura / escritura. w+b Crea un archivo binario para lectura / escritura. a+b Añade o crea un archivo binario para lectura / escritura. La función fopen() devuelve un puntero a archivo. Un programa nunca debe alterar el valor de ese puntero. Si se produce un error cuando se esta intentando abrir un archivo, fopen() devuelve un puntero nulo. Se puede abrir un archivo bien en modo texto o binario. En la mayoría de las implementaciones, en modo texto, la secuencias de retorno de carro / salto de línea se convierten a caracteres de salto de línea en lectura. En la escritura, ocurre lo contrario: los caracteres de salto de línea se convierten en salto de línea. Estas conversiones no ocurren en archivos binarios.
  • 3. La macro NULL está definida en STDIO.H. Este método detecto cualquier error al abrir un archivo: como por ejemplo disco lleno o protegido contra escritura antes de comenzar a escribir en él. Si se usa fopen() para abrir un archivo para escritura, entonces cualquier archivo existente con el mismo nombre se borrará y se crea uno nuevo. Si no existe un archivo con el mismo nombre, entonces se creará. Si se quiere añadir al final del archivo entonces debe usar el modo a. Si se usa a y no existe el archivo, se devolverá un error. La apertura de un archivo para las operaciones de lectura requiere que exista el archivo. Si no existe, fopen() devolverá un error. Finalmente, sus se abre un archivo para las operaciones de leer / escribir, la computadora no lo borrará si existe; sin embargo, si no existe, la computadora lo creará. Cierre de un archivo. La función fclose() cierra una secuencia que fue abierta mediante una llamada a fopen(). Escribe toda la información que todavía se encuentre en el buffer en el disco y realiza un cierre formal del archivo a nivel del sistema operativo. Un error en el cierre de una secuencia puede generar todo tipo de problemas, incluyendo la pérdida de datos, destrucción de archivos y posibles errores intermitentes en el programa. El prototipo de esta función es: int fclose(FILE *F); Donde F es el puntero al archivo devuelto por la llamada a fopen(). Si se devuelve un valor cero significa que la operación de cierre ha tenido éxito. Generalmente, esta función solo falla cuando un disco se ha retirado antes de tiempo o cuando no queda espacio libre en el mismo. Para introducir u obtener datos de un archivo tenemos las siguientes cuatro funciones: fprintf() y fscanf() Estas funciones se comportan exactamente como prinft() y scanf() discutidas anteriormente, excepto que operan sobre archivo. Sus prototipos son: int fprintf(FILE *F, const char *cadena_de_control, .....); int fscanf(FILE *F, const char *cadena_de_control, .....); Donde F es un puntero al archivo devuelto por una llamada a fopen(). fprintf() y fscanf() dirigen sus operaciones de E/S al archivo al que apunta F. Las funciones fgets() y fputs() pueden leer y escribir cadenas a o desde los archivos. Los prototipos de estas funciones son: char *fputs(char *str, FILE *F); char *fgets(char *str, int long, FILE *F);
  • 4. La función puts() escribe la cadena a un archivo especifico. La función fgets() lee una cadena desde el archivo especificado hasta que lee un carácter de nueva línea o longitud-1 caracteres. Si se produce un EOF (End of File) la función gets retorna un NULL. Funcion feof() Cuando se abre un archivo para entrada binaria, se puede leer un valor entero igual de la marca EOF. Esto podría hacer que la rutina de lectura indicase una condición de fin de archivo aún cuando el fin físico del mismo no se haya alcanzado. Para resolver este problema, C incluye la función feof(), que determina cuando se ha alcanzado el fin del archivo leyendo datos binarios. La función tiene el siguiente prototipo: int feof(FILE *F); Su prototipo se encuentra en STDIO.H. Devuelve cierto si se ha alcanzado el final del archivo, en cualquier otro caso, 0. Por supuesto, se puede aplicar este método a archivos de texto también. Ahora bien para el ejemplo anterior usted incluirá los datos de la forma: Nombre del alumno1 nota Nombre del alumno2 nota ..... Algunas veces usted necesitara manipular por separado el nombre del alumno y su nota, para esto es necesario separarlo en campos. Se puede realizar introduciendo caracteres delimitadores entre campo y campo, por ejemplo: fprinft(C,”%s;%d n”,nombre,cal); Esto generara un archivo de tipo: Nombre del alumno1;nota Nombre del alumno2;nota ..... La función rewind() inicializa el indicador de posición, al principio del archivo, indicado por su argumento. Su prototipo es: void rewind (FILE *F); Donde F es un puntero a un archivo válido. Esta función se encuentra en STDIO.H
  • 5. La función ferror() determina si se ha producido en error en una operación sobre un archivo. Su prototipo es: int ferror(FILE *F); Donde F es un puntero a un archivo válido. Devuelve cierto si se ha producido un error durante la ultima operación sobre el archivo. En caso contrario, devuelve falso. Debido a que cada operación sobre el archivo actualiza la condición de error, se debe llamar a ferror() inmediatamente después de la operación de este tipo; si no se ase así, el error puede perderse. Esta función se encuentra en STDIO.H La función remove() borra el archivo especificado. Su prototipo es el siguiente: int remove(char *nombre_archivo); Devuelve cero si tiene éxito. Si no un valor distinto de cero. La función fflush() escribe todos los datos almacenados en el buffer sobre el archivo asociado con un apuntador. Su prototipo es: int fflush(FILE *F); Si se llama esta función con un puntero nulo se vacian los buffers de todos los archivos abiertos. Esta función devuelve cero si tiene éxito, en otro caso, devuelve EOF.