• No se han encontrado resultados

Mtra. Irma Ardón 10. Archivos

N/A
N/A
Protected

Academic year: 2021

Share "Mtra. Irma Ardón 10. Archivos"

Copied!
17
0
0

Texto completo

(1)

10. Archivos

Mtra. Irma Ardón

(2)

Definición de Archivo

Estructura de dato que contiene una secuencia de bytes que termina con

EOF

Lo que da sentido a dicha secuencia

de bytes, son las estructuras de datos

que construimos para trabajar con ellos

(3)

Representación gráfica:

EOF

Apuntador a datos

Inicio del

archivo Indicador de

posición Fin del

archivo Secuencia ó flujo de bytes

Representación Gráfica

(4)

Tipos de Archivos

De Texto

Binario

(5)

Componentes de los Archivos de Texto

Cadena de caracteres alfanuméricos y símbolos especiales

Si se almacenan números, hay que darles formato, signo, longitud y precisión

Se leen por: caracter, línea o token

(6)

Componentes de los Archivos Binarios

Los datos se escriben con el mismo formato en que se encuentran en memoria primaria

Se debe elegir el tipo de dato que

corresponda al rango de valores a manipular

Pueden contener instrucciones ejecutables

(7)

Funciones Básicas de Archivos

stdio.h

Se clasifican en tres categorías:

Creación - Apertura

Lectura - Escritura

Cierre

(8)

FILE * fopen (“ruta y nombre del archivo”,”modo”);

donde MODO:

r lectura

wescritura (destruye) a escritura (agrega)

Si a éstos modos de apertura se añaden:

 

b el archivo es o será binario + lectura y escritura

Creación (o Apertura)

(9)

Cierre

fclose(ApuntadorADatos);

(10)

Lectura - Escritura…

fprintf(ApuntadorADatos,”%EspecificadorDeFormato”,Origen);

fscanf(ApuntadorADatos,”% EspecificadorDeFormato”,&Destino);

fputs(CadenaOrigen,LongitudCadenaOrigen,ApuntadorADatos);

 fgets(CadenaDestino,LongitudCadenaDestino,ApuntadorADatos);

putc(CaracterOrigen,ApuntadorADatos);

(11)

…Lectura - Escritura

getc(ApuntadorADatos);

int

fwrite(Origen,NumBytes,ElementosDeNumBytes,ApuntadorA Datos);

int

fread(&Destino,NumBytes,ElementosDeNumBytes,Apuntador ADatos);

int

fseek(ApuntadorADatos,DesplazamientoEnBytes,PuntoDePar tida);

rewind(ApuntadorADatos):

(12)

Números en archivo de texto en C

(ArregloArchivo.cpp)

#include<iostream>

#include<stdlib.h>

#include<time.h>

#define MAX 15

using namespace std;

int main (){

int i,num, b[MAX];

FILE *archivo;

srand(time(NULL));

archivo = fopen

("C:ARREGLO.TXT", "w");

for(i=0;i<MAX;i++) { num =rand()%100;

fprintf(archivo,"%d\n",num);

}

fclose(archivo);

cout<<"\n\n";

archivo =fopen

("C:ARREGLO.TXT", "r");

for(i=0;i<MAX && ! feof(archivo);i++){

fscanf(archivo,"%d",&b[i]);

cout<<b[i]<<"\t";

} }

(13)

//Escribir en bloc de notas varias líneas de texto “LINEAS.TXT”

#include <stdio.h> #include <iostream> #define TAM 45 using namespace std;

int main() { char cad[TAM];

FILE * archivoPtr;

archivoPtr = fopen("E://LINEAS.TXT","r");

if (archivoPtr == NULL) cout<<"\n IMPOSIBLE LEER ARCHIVO";

else {

fgets(cad,TAM,archivoPtr);

while (!feof(archivoPtr)){

cout<<"\n"<<cad;

fgets(cad,TAM,archivoPtr);

}

fclose(archivoPtr);

}

Líneas en Archivo de Texto en C

(14)

#include<iostream>

#include<string.h>

#include<stdio.h>

#define TAM 10

using namespace std;

struct TArt{

int id; char descripcion[TAM]; float precio;

};

int main(){

TArt arreglo[TAM];

IngresarDatos(arreglo);

GrabarArchivo(arreglo);

LeerArchivo();

}

Arreglo de Registros en Archivo Binario de C…

(15)

void IngresarDatos(TArt arreglo[ ]){

int i;

cout<<"\nValores Ingresados";

for (i=0;i<TAM;i++) arreglo[i].id = -1;

arreglo[0].id=1;

strcpy(arreglo[0].descripcion,"UNO");

arreglo[0].precio=1.1;

arreglo[1].id=2;

strcpy(arreglo[1].descripcion,"DOS");

arreglo[1].precio=2.2;

}

(16)

void GrabarArchivo(TArt arreglo[ ]){

FILE * pf;

int i=0;

if ( (pf = fopen("C:DATOS.DAT", "wb")) == NULL)

cout<<"imposible escribir en el archivo.\n";

else {

while (arreglo[i].id!= -1) {

fwrite(&arreglo[i],sizeof(TArt),1,pf);

i++;

}

cout<<"\nGUARDADO EN MEDIO EXTERNO";

fclose(pf);

} }

(17)

int LeerArchivo(){

TArt L[TAM];

FILE * pf1;

int i=0;

if ( (pf1 = fopen("C:DATOS.DAT", "rb")) == NULL) cout<<"imposible escribir en el archivo.\n";

else {

cout<<endl<<"LEIDO DE ARCHIVO: "<<endl;

fread(&L[i],sizeof(TArt),1,pf1);

while (!feof(pf1)) { cout<<L[i].id<<" ";

cout<<L[i].descripcion<<" ";

cout<<L[i].precio<<endl;

i++;

fread(&L[i],sizeof(TArt),1,pf1);

}

fclose(pf1); } return i; }

Referencias

Documento similar

Al desarrollarse las partes más nobles del cerebro, adquirimos dominio sobre nosotros mismos y lloramos mucho menos que en la infancia; no obstante, es cierto que aun

Es la carta de amor de Dios para nosotros, y él nos llama – como primer y más importante mandamiento – a amarlo con todo lo que tenemos. (Mateo 22:36-40; Deuteronomio 6:4-5)

Para completar mi día «libre», había planeado ir a una librería esa misma tarde y comprar un libro de hindi, pero Manik tenía algo en mente: «Vamos a subir cinco minutos a casa

El cuarto eje, Atención a las Víctimas, enmarca el fortalecimiento de los 27 Centros de atención a víctimas de violencia familiar y violencia sexual que existen en la Ciudad

Entonces usted tiene su atención sobre sus ojos y como ella esta centrada en los suyos comienza a decir:.. &#34; Maria, sé que hay alguna gente que puede mirar muy profundamente a

 Noordermer: Si, si y no porque son muy pocos los docentes que cuando planifican piensan en las diferentes respuestas que van a tener en el grupo, en general como docentes, como

The buildings of Jose Llinas besides their formal aptitudes, in addi- tion to the quality of their materials, not to mention the perfection of their

En las estructuras de datos dinámicas el tamaño y su forma es variable a lo largo de un programa, es decir, la memoria se reserva a tiempo de corrida del programa; este tipo