Anda di halaman 1dari 11

Santa Ana de Coro; Marzo 2014

Lcdo. Edgar Gonzlez


Lectura Cin
Stream
(flujos)
Escritura Cout

Memoria Asignada al
Buffer
Ram fichero.

Almacenada
Fichero Registro
en disco.

Lcdo. Edgar Gonzlez


Los datos se almacenan en forma consecutiva, no es
Acceso posible leer un registro directamente.
Secuencial

Se puede acceder a un registro concreto sin necesidad de


Acceso leer los anteriores.
Aleatorio

Los datos se almacenan usando cdigo ASCII y por lo


Archivos tanto pueden ser procesados por cualquier editor de texto.
de texto

Archivos
Los datos son almacenados en cdigos binarios.
Binarios

Lcdo. Edgar Gonzlez


Nombre: Juan
Apellido: Perez
Cedula: 21768345
Edad: 20 archivo.txt
Lcdo. Edgar Gonzlez
Nombre Descripcion de la function
Funcin
fopen() Abre un archivo.
fclose() Cierra un archivo.
fputc Escribe un carcter en un archivo
fgetc Lee un carcter de un archivo
fputs() Escribe una cadena en un archivo
fgets() Lee una cadena de un archivo.
remove() Borra un archivo.
feof() Deteccin del final de archivo

Lcdo. Edgar Gonzlez


Modo Especificaciones
r Slo abre un archivo para su lectura.
Si el archivo no existe, lo crea. Si existe,
w
lo borra y aade uno nuevo.
El archivo debe ( no) existir. Lo abre
a
para aadir informacin al final.
El archivo ya existe y lo abre para
r+
actualizarlo.
Crea un nuevo archivo para actualizarlo
w+
y si existe, sobreescribe en l.
Abre un archivo para aadir
a+
informacin al final. Si no existe lo crea.
Si el archivo es binario se le agrega una letra b
al modo. Ej: rb.

Lcdo. Edgar Gonzlez


N 1: Abre un archivo de nombre N 2: Abre un archivo de nombre
hola.txt. Si el archivo no existe lo datos.txt y guarda la letra a
crea. Si existe lo borra y aade uno en el.
nuevo.

#include <iostream> #include <iostream>


#include <stedio.h> #include <stedio.h>
using namespace std; using namespace std;

int main(){ int main(){


FILE *pf; FILE *pf;
pf=fopen(hola.txt,w); char letra=a;
if(pf==NULL){ pf=fopen(datos.txt,w);
cout<<no se pudo abrir el archivo<<endl; if(pf==NULL){
} cout<<no se pudo abrir el archivo<<endl;
}
else{ else{
cout<<el archivo se abri<<endl; fputc(letra,pf);
fclose(pf); Cout<<se abrio el archivo<<endl;
} Cout<<letra guardada<<endl;
return 0; }
} fclose(pf);
return 0;
}
Lcdo. Edgar Gonzlez
N 3: Abre un archivo de nombre N 4: Borra un archivo cualquiera
datos.txt. De solo lectura y obtn
todo lo que hay en el.
#include <iostream> #include <iostream>
#include <stedio.h> #include <stedio.h>
using namespace std; using namespace std;

int main(){ int main(){


FILE *pf; char archivo[20];
char letra; cout<<int. Nmbre del archivo<<endl;
pf=fopen(datos.txt,r); cin>>archivo;
if(pf==NULL){ if(remove(archivo)==-1){
cout<<error borrando archivo<<endl;
cout<<no se pudo abrir el archivo<<endl;
}
} else{
else{ cout<<archivo borrado<<endl;
letra=fgetc(pf); }
cout<<letra:<<letra<<endl; return 0;
fclose(pf); }
}
return 0;
}

Lcdo. Edgar Gonzlez


fwrite Escritura genrica
Esta funcin permite escribir en un archivo todo tipo de datos, desde un
tipo entero hasta una estructura posee el siguiente formato fwrite(const
void *p_buffer, size_t tamao, size_t numero, FILE *p_archivo)

fread Lectura genrica


Se utiliza para extraer la informacin contenida en un
archivo.

fseek Posicionamiento en el archivo


Permite situarnos en la posicin deseada de un archivo
abierto.

Ftell Posicionamiento en el archivo


Devuelve la posicin actual dentro del fichero. Es un
complemento de fseek.

Lcdo. Edgar Gonzlez


fwrite(puntero que contiene los datos a guardar, el tamao del
tipo de dato que vamos a escribir usando delante el operador
sizeof, el numero de datos a escribir, puntero al archivo que
trabajamos)
Parte 1: Parte 2:
#include <iostream> int main()
#include <stdio.h> {
using namespace std; int opc;
cout<<"\n\n\t\t ELIJA LA OPCION A
struct datos_estudiantes{ REALIZAR \n\n";
char nombre[20], apellido[20]; cout<<"\t\t 1.- GUARDAR ARCHIVO"<<endl;
char cedula[12]; cout<<"\t\t 2.- ABRIR ARCHIVO"<<endl;
}estudiantes[100]; cout<<"\t\t 3.- BORRAR ARCHIVO"<<endl;
cout<<"\t\t 4.- SALIR"<<endl;
void guardar(); cin>>opc;
switch(opc)
{
case 1:
guardar();
}
return 0;
}

Lcdo. Edgar Gonzlez


Parte 3: Parte 4:
void guardar() cout<<"DESEA GUARDAR LOS DATOS
{ INTRODUCIDOS S/N"<<endl;
FILE *ptr; cin>>respuesta;
int num, i; if(respuesta=='s')
char respuesta, archivo[30]; {
float notas[5], suma; cout<<"Introduzca el nombre del archivo:"<<endl;
cout<<"Indique el numero de registros a guardar:"<<endl; cin>>archivo;
cin>>num; ptr=fopen(archivo,"wb");
for(i=0;i<num;i++) if(ptr==NULL)
{ {
cout<<"INTRODUZCA EL NOMBRE:"<<endl; cout<<"NO SE PUDO ABRIR EL ARCHIVO"<<endl;
cin>>estudiantes[i].nombre; }
cout<<"INTRODUZCA EL APELLIDO:"<<endl; else
cin>>estudiantes[i].apellido; {
cout<<"INTRODUZCA LA CEDULA:"<<endl; fwrite(&estudiantes, sizeof(estudiantes), num, ptr);
cin>>estudiantes[i].cedula; cout<<"Archivo creado exitosamente y se han
} guardado los datos"<<endl;
fclose(ptr);
cout<<"\n\n\t\t REGISTROS DE ESTUDIANTES \n\n"; }
for (i=0;i<num;i++){ }
cout<<"\n\t\t REGISTRO "<<i+1<<":"<<endl;
cout<<"\t\t NOMBRE"<<": main();
"<<estudiantes[i].nombre<<endl; }
cout<<"\t\t APELLIDO"<<":
"<<estudiantes[i].apellido<<endl;
cout<<"\t\t CEDULA"<<":
"<<estudiantes[i].cedula<<endl;
}

Lcdo. Edgar Gonzlez