martes, 3 de junio de 2014

Uso de Ficheros binarios en C++ (0 puntos)

Buenas amigos de taringa, regreso hoy con este nuevo post porque es algo que me costo mucho entender espero facilitarles un poco la cosa este método me funciono muy bien.

Primer paso Abrir el Fichero:


Para usar ficheros primero hay que abrirlo, para esto hay que crear un puntero de tipo FILE que apunte a la dirección de memoria del fichero.


File *Puntero


hay que asignarle la direccion de memoria del archivo y ponerle un modo de apertura, los modos de apertura son los siguientes:


"r" -- Abre solo para Lectura

"w" -- Abre para escritura (en caso que el archivo ya exista borra la información)

"a" -- Abre el archivo y agrega info en la ultima linea

"r+" -- Abre archivo ya existente para leerlo o escribir en el

"w+" -- Crear un archivo para leer y escribir (si ya existe borra la información)

"a"+"-- Abre un archivo para agregar información(si no existe el archivo funciona igual que "w+"


y también la dirección del archivo, para hacerla fácil se puede poner una variable de tipo char con valor predefinido algo así:


char f1[]={"D: Progra\Agenda\BDAgenda.dat" ) ;


Ojo el \ es para abrir carpetas el : es para abrir discos


si ya tenemos nuestra variable char ya solo nos queda abrir el puntero.


Puntero=fopen(f1,"a+b" );


Segundo paso Leer el Fichero y Guardar la información en un Vector o Array:


Para pasar lo que tengo en un archivo a un vector solo creo mi vector y uso fread para leer el archivo y guardarlo en mi vector.

supongamos que mi vector es de 10


int vectorcreado[10];



fseek(Puntero,0,0);

for(int t=0; t<10; t++){

fread(&vectorcreado[t],size of(Estructura o vector),1,Puntero) ;

}


notese que el & esta antes del vector esto se tiene que hacer con un ciclo for si no lleva el & solo pasara el primer indice


Cuando terminamos el ciclo para guardar la información tenemos que cerrar el archivo con fclose



fclose(Puntero)
;


Tercer paso Escribir en el Fichero:


Para escribir se usa la función fwrite, esto lo hacemos así:


Recordemos que el modo de apertura "w+" me va a sobrescribir todo

pero eso es bueno en este caso, porque los datos actualmente están en mi vector, y los estoy manipulando en mi vector, y si los borre fue de mi vector, ahora lo que tenemos que hacer es borrar nuestro archivo ya existente y reemplazar la información que hay allí con la que esta en mi vector (para mantenerla actualizada)


Pues bien entonces usaremos el modo así:


Puntero=fopen(f1,"w+b" ;


sii estoy volviendo a abrir el archivo por eso es tan necesario cerrarlo arriba, para poder abrirlo ahorita pero de otro modo.


Luego escribimos con fwrite siempre usando un for para escribir toda la información de mi vector en el archivo.





for(int t=0;t<10;t++){

fwrite(&vectorcreado,size of(Estructura o vector),1,Puntero);

}


y volvemos a cerrar el archivo o fichero



fclose(Puntero);


vemos que es igual al fread que si no lleva el & antes del vector solo escribirá el primer indice del vector



pues nada eso es todo por mi parte el resto les toca a ustedes lo que estoy haciendo aquí es crear un archivo binario, guardando la información de mi programa en este archivo y luego guardando la información de mi archivo en mi vector para poder manipularla como yo quiera lo que me permite guardar mi archivo actualizado


Aclaro: esta es mi forma de hacerlo y a mi criterio la mas fácil y funcional

si alguien conoce una forma mas fácil comentadla, puede que ayuden a alguien

y si se sienten tan tontos como me sentí yo al principio que empece a ver este tema pregunten

puedo tardar un par de horas o días en contestar pero siempre contesto



El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.







via Taringa.net - �ltimos posts http://ift.tt/1klieZh

No hay comentarios:

Publicar un comentario