SlideShare una empresa de Scribd logo
1 de 41
ARCHIVOS
Conceptos.
Conceptos basicos
Manejo en C++
Secuenciales
De acceso directo
2
Introducción
 Ya aprendieron a manejar gran cantidad
de datos del mismo y diferente tipo al
mismo tiempo.
 El problema es que el programa retiene
los datos mientras esté ejecutándose y se
pierden al terminar la ejecución.
 La solución para hacer que los datos no se
pierdan es almacenarlos en un archivo.
 Los archivos son medios que facilita el
lenguaje para almacenar los datos en
forma permanente, normalmente en los
dispositivos de almacenamiento externo.
3
Introducción
 Desde el punto de vista informático, un archivo es una
colección de información que almacenamos en un
soporte permanente para poder manipularla en cualquier
momento.
 Esta información se almacena como un conjunto de
registros.
Archivos de datos
 Area localizada en una unidad
secundaria de almacenamiento que
se utiliza para guardar los datos que
se utilizarán en un programa.
Programa
en C++
Input
data
file
Output
data
file
5
Introducción
 En C++, se utilizan streams (flujos) para gestionar la
lectura y escritura de datos. Ya conocemos dos flujos
estándar: cin y cout.
 En definitiva, abrir un fichero significa definir un stream.
Dicho stream permite la transferencia de datos entre el
programa
 El buffer es un área de memoria situada en la RAM
asignada al programa que abre el archivo y el fichero en
disco.
6
Introducción
 Flujos o streams
 • Un flujo o stream permite comunicar información entre un
 origen y un destino.
 – El propio programa C++ es uno de los extremos de un flujo (el destino
 o el origen de la información)
 – El otro extremo del flujo puede ser un dispositivo físico (teclado,
 pantalla, etc.) o un fichero o archivo almacenado en un dispositivo
 físico de almacenamiento.
7
Introducción
 Ficheros o archivos de datos
 • Un fichero o archivo almacena una secuencia de datos:
 – < d1, d2, d3, ... , dK‐1, dK >
 • Los datos de un fichero o archivo son persistentes:
 – Persistencia: capacidad de que los datos sobrevivan a la ejecución del
 programa y puedan ser utilizados (leídos) posteriormente
 • La capacidad de un fichero o archivo no está limitada a priori:
 – Los ficheros o archivos almacenan secuencias de datos de longitud
 no limitada a priori (el límite lo impondrá la capacidad física del
 dispositivo que lo almacene)
8
Introducción
 Manipulación de Ficheros
 Toda transferencia de datos entre el programa y
el fichero en disco se realiza a través del buffer.
El buffer está para dar eficiencia.
 Las operaciones de E/S son más eficientes:
 El acceso a la memoria RAM consume menos tiempo que el acceso a un
dispositivo físico.
 El buffer hace que el número de accesos al fichero físico sea menor.
 El uso del buffer permite realizar operaciones de
entrada salida de forma más eficiente.
9
Introducción
 Organización de archivos
 Archivos de acceso secuencial: los datos se
almacenan de forma consecutiva y no es posible leer un registro
directamente, es decir para leer el registro n hay que leer los n-1
registros anteriores.
 Archivos de acceso aleatorio: se puede acceder a un
registro concreto sin necesidad de leer todos los anteriores.
 Tipo de almacenamiento en Archivos
 Archivos de texto: Los datos se almacenan usando código
ASCII y por tanto, pueden ser procesados por cualquier editor de
texto.
 Archivos binarios: Los datos se almacenan en binario.
10
Archivos en C++
 Biblioteca de flujos
 Para poder manipular archivos, C++ dispone de la
biblioteca estándar fstream (file stream) donde se
encuentran todas las funciones necesarias para abrir y
cerrar archivos, así como para realizar las operaciones
de lectura y escritura de datos en archivos.
 # include <fstream.h>
 Operaciones asociadas a archivos
 – Abrir fichero
 – Cerrar fichero
 – Lectura y escritura
 – Funciones de control
11
Archivos en C++
 Biblioteca de flujos
 Para poder manipular archivos, C++ dispone de la
biblioteca estándar fstream (file stream) donde se
encuentran todas las funciones necesarias para abrir y
cerrar archivos, así como para realizar las operaciones
de lectura y escritura de datos en archivos.
 # include <fstream.h>
 Operaciones asociadas a archivos
 – Abrir fichero
 – Cerrar fichero
 – Lectura y escritura
 – Funciones de control
 ARCHIVOS Y FLUJOS
 En C++, un stream es un flujo de datos de una
fuente a un destino. Las fuentes y los destinos
pueden ser cualquiera de los dispositivos o
archivos de entrada/salida.
 Para la entrada y la salida, hay dos flujos
diferentes llamados flujo de entrada y flujo de
salida.
 flujo de entrada estándar cin
 flujo de salida estándar cout
 la entrada y la salida estándar son el teclado y
la pantalla del monitor, respectivamente.
13
Introducción
 Los flujos sobre archivos en disco vienen representados por las clases
ifstream, ofstreamy fstream, con las que es posible leer de un
archivo, escribir en un archivo o leer y escribir, respectivamente.
 Estas clases heredan de fstreambasemétodos como openy close,
para abrir y cerrar la conexión con el archivo, y de las clases istreamy
ostreamlos operadores y métodos necesarios para escribir o leer.
 El constructor de estas clases acepta como argumento la ruta del archivo
a abrir y, opcionalmente, unos indicadores de modo de apertura.
La manipulación de archivos en C++ es un
proceso de cinco pasos:
1. Incluir el header file fstream en el programa
2. Declarar las variables de tipo file stream
3. Asociar las variables con las fuentes de
input/output
4. Utilizar las variables con >>, << u otras
funciones de i/o
5. Cerrar los archivos.
15
Archivos en C++
 Apertura de archivos
 Al igual que los flujos cin y cout, los flujos de E/S solo
pueden transferir datos en una dirección, esto significa
que se tienen que definir flujos diferentes para lectura y
escritura de datos.
 Abrir el archivo para lectura o entrada
 Abrir un archivo para entrada, es definir un flujo de
archivo de entrada.
16
Archivos en C++
 Supongamos que queremos abrir un archivo
que se llama misdatos.txt que se encuentra en
la unidad de disco a:
 Hemos definido el flujo de entrada Entrada.
 #include <fstream.h>
 ….
 ifstream Entrada (“a:misdatos.txt”);
 …
 ...
20
Archivos en C++
 ifstream: It is the input file stream class. Its member function open( ) associates
the stream with a specified file in an input mode.
 In addition to open(), ifstreamclass inherits the following functions from
istreamclass.
 (i) get( ) (ii) getline( ) (iii) read( ) (iv) seekg( ) (iv) tellg( )
 ofstream: It is the output file stream class. Its member function open( ) associates
the stream with a specified file in an output mode.
 In addition to open(), ofstreaminherits the following functions from ostreamclass
 (i) put( ) (ii) write( ) (iii) seekp( ), (iv) tellp( )
21
Archivos en C++
 fstream: It supports files for simultaneous input and output. It is derived from
ifstream, ofstreamand iostreamclasses.
 The functions associated with this stream are :
 1. open : This associates the stream with a specified file.
 2. close : It closes the stream.
 3. close all : It closes all the opened streams
 4. seekg: Sets current `get' position in a stream
 5. seekp: Sets current `put' position in a stream
 6. tellg: Returns the current `get' position in a stream
 7. tellp: Returns the current `put' position in a stream.
Ejemplo: Algoritmo
1. Declarar las variables
2. Abrir el archivo de input
3. Abrir el archivo de output
4. Utilizar los manipuladores de output
5. Leer el nombre del estudiante del archivo
6. Escribir en el archivo de output el nombre del
estudiante
7. Leer los scores de las cinco notas
8. Escribir los scores en el archivo de output
9. Calcular el promedio
10. Escribir el promedio en el archivo de output
11. Cerrar los archivos
24
Introducción
 Funciones de la clase ifstream que van a ser utilizadas:
 • f.open(const char nombreFichero[]) asocia el fichero al flujo <f>
 • f.is_open() devuelve true si y solo si el flujo <f> está asociado a un
fichero
 • f.get() lee o extrae el siguiente carácter del flujo <f> y lo devuelve
 • f.eof() devuelve true si y solo si la última operación de lectura no pudo
 completarse por no haber ya datos pendientes de lectura en el flujo <f>
 • f.close() libera el fichero asociado al flujo <f> y lo disocia de éste
25
Introducción
 Escritura de datos en un fichero
 Funciones de la clase ofstream que van a ser utilizadas:
 • f.open(const char nombreFichero[]) asocia el fichero al flujo f
 • f.is_open() devuelve true si y solo si el flujo f está asociado a un fichero
 • f.put(char c) inserta en el flujo f el carácter c
26
Introducción
27
Introducción
Ejemplo: Programa en C++ donde se capturan datos desde un
archivo, se procesan, y luego se escriben en un archivo de salida
#include<iostream> // para utilizar cin cout endl
#include<fstream> //para utilizar tipos de datos ifstream y ofstream
#include<iomanip> // para los manipuladores de output
#include<string> // para poder utilizar variables del tipo “string” en el programa
Ejemplo: Programa en C++ donde se capturan datos desde un
archivo, se procesan, y luego se escriben en un archivo de salida
using namespace std;
int main()
{ // Paso #1
// Se declaran las variables a utilizar
ifstream inFile; //input file stream variable
ofstream outFile; //output file stream variable
double test1, test2, test3, test4, test5;
double average;
string firstName;
string lastName;
Ejemplo: Programa en C++ donde se capturan datos desde un
archivo, se procesan, y luego se escriben en un archivo de salida
inFile.open("test.txt"); // Paso #2
outFile.open("testavg.out"); // Paso #3
outFile << fixed << showpoint; // Paso #4
outFile << setprecision(2);
cout<< "Processing data" << endl;
inFile >> firstName >> lastName; // Paso #5
outFile << "Student Name: " << firstName
<< " " << lastName << endl; // Paso #6
Ejemplo: Programa en C++ donde se capturan datos desde un
archivo, se procesan, y luego se escriben en un archivo de salida
inFile >> test1 >> test2 >> test3
>> test4 >> test5; // Paso #7
outFile << "Test scores: " << setw(6) << test1
<< setw(6) << test2 << setw(6) << test3
<< setw(6) << test4 << setw(6) << test5
<< endl; // Paso #8
average = (test1 + test2 + test3 + test4
+ test5) / 5.0; // Paso #9
outFile << "average test score: " << setw(6)
<< average << endl; // Paso #10
inFile.close(); // Paso #11
outFile.close();
return 0;
}
32
Archivos en C++
 ASPECTOS GENERALES SOBRE E/S
 Los operadores de inserción y extracción, << y >> respectivamente, están
sobrecargados para todos los tipos de datos intrínsecos, sin importar el tipo
de streamsobre el que se trabaja.
33
Introducción
 Todos las clases derivadas de ios heredan una serie de indicadores de
estado que nos permiten saber cómo ha quedado el streamtras la última
operación:
 good(): Devuelve un valor distinto de 0 si no se ha producido ningún
error.
 eof(): Devuelve un valor distinto de 0 si se ha llegado al fin de archivo.
 bad(): Devuelve un valor distinto de 0 si el streamha quedado inservible.
 fail(): Devuelve un valor distinto de 0 si la última operación ha fallado.
 El operador ! está sobrecargado, de forma que es posible comprobar si
un streamm puede seguir utilizándose o no mediante una expresión del tipo
if(!strEntrada) hayFallo();
34
Directos
 En los flujos que lo permitan, es posible desplazar el puntero de
lectura/escritura con el método seekg, facilitando un desplazamiento y una
de las tres constantes siguientes:
 ios::beg: El desplazamiento será absoluto.
 ios::cur: El desplazamiento será relativo respecto a la posición actual.
 ios::end: El desplazamiento será relativo respecto al fin de archivo.
 Para determinar la posición actual en el flujo existe el método tellg.
35
Directos
 Condiciones para que un archivo sea de organización directa:
 Almacenamiento en un soporte direccionable.
 •Cada registro debe contener un campo clave.
 •Debe haber correspondencia entre los posibles valores de la clave y las
direcciones existentes en el soporte.
36
Directos
 DIRECCIÓN ABSOLUTA O RELATIVA
 •Es un soporte direccionable, cada posición se realiza por su dirección
absoluta, número de pista y número de sector de disco. Los archivos
directos manipulan direcciones relativas en lugar de absolutas esto hará al
programa independiente de la posición absoluta del archivo en el soporte.
37
Directos
 Características
 oRegistros de longitud fija
 oAcceso directo a los registros
 oAccede a los registros por medio de direcciones
 oUso de soporte direccionable.
38
Directos
 Ventajas
 oLos archivos pueden insertarse sin destruir otros datos del archivo.
 oPara consultar un registro en específico no es necesario accesar a todos
 oTiempo de acceso optimo
 oLos registros pueden actualizarse o eliminarse sin necesidad de reescribir
el archivo completo
 (
39
Introducción
 Desventajas
 oLos datos pueden ser borrados o sobrescritos accidentalmente al menos
que se tomen precauciones especiales
 oRiesgo de pérdida de precisión y violación de seguridad
 oUso menos eficiente de espacio de almacenamiento
 oActualizar el archivo es más difícil que método secuencial

40
Introducción
 Operaciones
 oCrear archivos
 oConsultar registros
 oLecturas de registros
 oActualización
 oReorganización
 oBorrado
PARA POSICIONARME EN UN ARCHIVO DIRECTO EN EL REGISTRO N
<Fstream> .seekg((N-1)* sizeof(mPersona) )
PARA LEER
<Fstream>.read((char *) & <Vble En La que se Lee>, sizeof(<Vble En La que se Lee>))
PARA ESCRIBIR
<Fstream>.write((char *) & <Vble En La que se Lee>, sizeof(<Vble En La que se Lee>))

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Packages in java
Packages in javaPackages in java
Packages in java
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Control Flow Statements
Control Flow Statements Control Flow Statements
Control Flow Statements
 
C programming - String
C programming - StringC programming - String
C programming - String
 
Preprocessor in C
Preprocessor in CPreprocessor in C
Preprocessor in C
 
Object oriented programming interview questions
Object oriented programming interview questionsObject oriented programming interview questions
Object oriented programming interview questions
 
Los cinco operadores básicos del álgebra relacional.
Los cinco operadores básicos del álgebra relacional.Los cinco operadores básicos del álgebra relacional.
Los cinco operadores básicos del álgebra relacional.
 
CLASS & OBJECT IN JAVA
CLASS & OBJECT  IN JAVACLASS & OBJECT  IN JAVA
CLASS & OBJECT IN JAVA
 
User defined functions in C programmig
User defined functions in C programmigUser defined functions in C programmig
User defined functions in C programmig
 
C++ interview question
C++ interview questionC++ interview question
C++ interview question
 
pointer-to-object-.pptx
pointer-to-object-.pptxpointer-to-object-.pptx
pointer-to-object-.pptx
 
Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
 
Modern C++
Modern C++Modern C++
Modern C++
 
OOPS Basics With Example
OOPS Basics With ExampleOOPS Basics With Example
OOPS Basics With Example
 
C++ language basic
C++ language basicC++ language basic
C++ language basic
 
Files in c++
Files in c++Files in c++
Files in c++
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
Python oop third class
Python oop   third classPython oop   third class
Python oop third class
 
Clanguage
ClanguageClanguage
Clanguage
 

Similar a 2-Archivos.ppt (20)

Archivos en C++
Archivos en C++Archivos en C++
Archivos en C++
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
11 archivos guia numero 4
11 archivos guia numero 411 archivos guia numero 4
11 archivos guia numero 4
 
Archivos
ArchivosArchivos
Archivos
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
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++
 
S5 - Manejo de Archivos y BDD
S5 - Manejo de Archivos y BDDS5 - Manejo de Archivos y BDD
S5 - Manejo de Archivos y BDD
 
Diapositiva programacion archivos.pptx
Diapositiva programacion archivos.pptxDiapositiva programacion archivos.pptx
Diapositiva programacion archivos.pptx
 
Manejo_de_archivos_C
Manejo_de_archivos_CManejo_de_archivos_C
Manejo_de_archivos_C
 
Archivos.pdf
Archivos.pdfArchivos.pdf
Archivos.pdf
 
S5-PD1.pptx
S5-PD1.pptxS5-PD1.pptx
S5-PD1.pptx
 
S5-PD1-3.1 Manejo de Archivos
S5-PD1-3.1 Manejo de ArchivosS5-PD1-3.1 Manejo de Archivos
S5-PD1-3.1 Manejo de Archivos
 
Flujos y archivo en java
Flujos y archivo en javaFlujos y archivo en java
Flujos y archivo en java
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Controladora de perifericos indice
Controladora de perifericos indiceControladora de perifericos indice
Controladora de perifericos indice
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 

Último

CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfAnonymous0pBRsQXfnx
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosfranchescamassielmor
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxPaolaVillalba13
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 

Último (20)

CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Electromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdfElectromagnetismo Fisica FisicaFisica.pdf
Electromagnetismo Fisica FisicaFisica.pdf
 
Sistema de gestión de turnos para negocios
Sistema de gestión de turnos para negociosSistema de gestión de turnos para negocios
Sistema de gestión de turnos para negocios
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptx
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 

2-Archivos.ppt

  • 1. ARCHIVOS Conceptos. Conceptos basicos Manejo en C++ Secuenciales De acceso directo
  • 2. 2 Introducción  Ya aprendieron a manejar gran cantidad de datos del mismo y diferente tipo al mismo tiempo.  El problema es que el programa retiene los datos mientras esté ejecutándose y se pierden al terminar la ejecución.  La solución para hacer que los datos no se pierdan es almacenarlos en un archivo.  Los archivos son medios que facilita el lenguaje para almacenar los datos en forma permanente, normalmente en los dispositivos de almacenamiento externo.
  • 3. 3 Introducción  Desde el punto de vista informático, un archivo es una colección de información que almacenamos en un soporte permanente para poder manipularla en cualquier momento.  Esta información se almacena como un conjunto de registros.
  • 4. Archivos de datos  Area localizada en una unidad secundaria de almacenamiento que se utiliza para guardar los datos que se utilizarán en un programa. Programa en C++ Input data file Output data file
  • 5. 5 Introducción  En C++, se utilizan streams (flujos) para gestionar la lectura y escritura de datos. Ya conocemos dos flujos estándar: cin y cout.  En definitiva, abrir un fichero significa definir un stream. Dicho stream permite la transferencia de datos entre el programa  El buffer es un área de memoria situada en la RAM asignada al programa que abre el archivo y el fichero en disco.
  • 6. 6 Introducción  Flujos o streams  • Un flujo o stream permite comunicar información entre un  origen y un destino.  – El propio programa C++ es uno de los extremos de un flujo (el destino  o el origen de la información)  – El otro extremo del flujo puede ser un dispositivo físico (teclado,  pantalla, etc.) o un fichero o archivo almacenado en un dispositivo  físico de almacenamiento.
  • 7. 7 Introducción  Ficheros o archivos de datos  • Un fichero o archivo almacena una secuencia de datos:  – < d1, d2, d3, ... , dK‐1, dK >  • Los datos de un fichero o archivo son persistentes:  – Persistencia: capacidad de que los datos sobrevivan a la ejecución del  programa y puedan ser utilizados (leídos) posteriormente  • La capacidad de un fichero o archivo no está limitada a priori:  – Los ficheros o archivos almacenan secuencias de datos de longitud  no limitada a priori (el límite lo impondrá la capacidad física del  dispositivo que lo almacene)
  • 8. 8 Introducción  Manipulación de Ficheros  Toda transferencia de datos entre el programa y el fichero en disco se realiza a través del buffer. El buffer está para dar eficiencia.  Las operaciones de E/S son más eficientes:  El acceso a la memoria RAM consume menos tiempo que el acceso a un dispositivo físico.  El buffer hace que el número de accesos al fichero físico sea menor.  El uso del buffer permite realizar operaciones de entrada salida de forma más eficiente.
  • 9. 9 Introducción  Organización de archivos  Archivos de acceso secuencial: los datos se almacenan de forma consecutiva y no es posible leer un registro directamente, es decir para leer el registro n hay que leer los n-1 registros anteriores.  Archivos de acceso aleatorio: se puede acceder a un registro concreto sin necesidad de leer todos los anteriores.  Tipo de almacenamiento en Archivos  Archivos de texto: Los datos se almacenan usando código ASCII y por tanto, pueden ser procesados por cualquier editor de texto.  Archivos binarios: Los datos se almacenan en binario.
  • 10. 10 Archivos en C++  Biblioteca de flujos  Para poder manipular archivos, C++ dispone de la biblioteca estándar fstream (file stream) donde se encuentran todas las funciones necesarias para abrir y cerrar archivos, así como para realizar las operaciones de lectura y escritura de datos en archivos.  # include <fstream.h>  Operaciones asociadas a archivos  – Abrir fichero  – Cerrar fichero  – Lectura y escritura  – Funciones de control
  • 11. 11 Archivos en C++  Biblioteca de flujos  Para poder manipular archivos, C++ dispone de la biblioteca estándar fstream (file stream) donde se encuentran todas las funciones necesarias para abrir y cerrar archivos, así como para realizar las operaciones de lectura y escritura de datos en archivos.  # include <fstream.h>  Operaciones asociadas a archivos  – Abrir fichero  – Cerrar fichero  – Lectura y escritura  – Funciones de control
  • 12.  ARCHIVOS Y FLUJOS  En C++, un stream es un flujo de datos de una fuente a un destino. Las fuentes y los destinos pueden ser cualquiera de los dispositivos o archivos de entrada/salida.  Para la entrada y la salida, hay dos flujos diferentes llamados flujo de entrada y flujo de salida.  flujo de entrada estándar cin  flujo de salida estándar cout  la entrada y la salida estándar son el teclado y la pantalla del monitor, respectivamente.
  • 13. 13 Introducción  Los flujos sobre archivos en disco vienen representados por las clases ifstream, ofstreamy fstream, con las que es posible leer de un archivo, escribir en un archivo o leer y escribir, respectivamente.  Estas clases heredan de fstreambasemétodos como openy close, para abrir y cerrar la conexión con el archivo, y de las clases istreamy ostreamlos operadores y métodos necesarios para escribir o leer.  El constructor de estas clases acepta como argumento la ruta del archivo a abrir y, opcionalmente, unos indicadores de modo de apertura.
  • 14. La manipulación de archivos en C++ es un proceso de cinco pasos: 1. Incluir el header file fstream en el programa 2. Declarar las variables de tipo file stream 3. Asociar las variables con las fuentes de input/output 4. Utilizar las variables con >>, << u otras funciones de i/o 5. Cerrar los archivos.
  • 15. 15 Archivos en C++  Apertura de archivos  Al igual que los flujos cin y cout, los flujos de E/S solo pueden transferir datos en una dirección, esto significa que se tienen que definir flujos diferentes para lectura y escritura de datos.  Abrir el archivo para lectura o entrada  Abrir un archivo para entrada, es definir un flujo de archivo de entrada.
  • 16. 16 Archivos en C++  Supongamos que queremos abrir un archivo que se llama misdatos.txt que se encuentra en la unidad de disco a:  Hemos definido el flujo de entrada Entrada.  #include <fstream.h>  ….  ifstream Entrada (“a:misdatos.txt”);  …  ...
  • 17.
  • 18.
  • 19.
  • 20. 20 Archivos en C++  ifstream: It is the input file stream class. Its member function open( ) associates the stream with a specified file in an input mode.  In addition to open(), ifstreamclass inherits the following functions from istreamclass.  (i) get( ) (ii) getline( ) (iii) read( ) (iv) seekg( ) (iv) tellg( )  ofstream: It is the output file stream class. Its member function open( ) associates the stream with a specified file in an output mode.  In addition to open(), ofstreaminherits the following functions from ostreamclass  (i) put( ) (ii) write( ) (iii) seekp( ), (iv) tellp( )
  • 21. 21 Archivos en C++  fstream: It supports files for simultaneous input and output. It is derived from ifstream, ofstreamand iostreamclasses.  The functions associated with this stream are :  1. open : This associates the stream with a specified file.  2. close : It closes the stream.  3. close all : It closes all the opened streams  4. seekg: Sets current `get' position in a stream  5. seekp: Sets current `put' position in a stream  6. tellg: Returns the current `get' position in a stream  7. tellp: Returns the current `put' position in a stream.
  • 22. Ejemplo: Algoritmo 1. Declarar las variables 2. Abrir el archivo de input 3. Abrir el archivo de output 4. Utilizar los manipuladores de output 5. Leer el nombre del estudiante del archivo 6. Escribir en el archivo de output el nombre del estudiante 7. Leer los scores de las cinco notas 8. Escribir los scores en el archivo de output 9. Calcular el promedio 10. Escribir el promedio en el archivo de output 11. Cerrar los archivos
  • 23.
  • 24. 24 Introducción  Funciones de la clase ifstream que van a ser utilizadas:  • f.open(const char nombreFichero[]) asocia el fichero al flujo <f>  • f.is_open() devuelve true si y solo si el flujo <f> está asociado a un fichero  • f.get() lee o extrae el siguiente carácter del flujo <f> y lo devuelve  • f.eof() devuelve true si y solo si la última operación de lectura no pudo  completarse por no haber ya datos pendientes de lectura en el flujo <f>  • f.close() libera el fichero asociado al flujo <f> y lo disocia de éste
  • 25. 25 Introducción  Escritura de datos en un fichero  Funciones de la clase ofstream que van a ser utilizadas:  • f.open(const char nombreFichero[]) asocia el fichero al flujo f  • f.is_open() devuelve true si y solo si el flujo f está asociado a un fichero  • f.put(char c) inserta en el flujo f el carácter c
  • 28. Ejemplo: Programa en C++ donde se capturan datos desde un archivo, se procesan, y luego se escriben en un archivo de salida #include<iostream> // para utilizar cin cout endl #include<fstream> //para utilizar tipos de datos ifstream y ofstream #include<iomanip> // para los manipuladores de output #include<string> // para poder utilizar variables del tipo “string” en el programa
  • 29. Ejemplo: Programa en C++ donde se capturan datos desde un archivo, se procesan, y luego se escriben en un archivo de salida using namespace std; int main() { // Paso #1 // Se declaran las variables a utilizar ifstream inFile; //input file stream variable ofstream outFile; //output file stream variable double test1, test2, test3, test4, test5; double average; string firstName; string lastName;
  • 30. Ejemplo: Programa en C++ donde se capturan datos desde un archivo, se procesan, y luego se escriben en un archivo de salida inFile.open("test.txt"); // Paso #2 outFile.open("testavg.out"); // Paso #3 outFile << fixed << showpoint; // Paso #4 outFile << setprecision(2); cout<< "Processing data" << endl; inFile >> firstName >> lastName; // Paso #5 outFile << "Student Name: " << firstName << " " << lastName << endl; // Paso #6
  • 31. Ejemplo: Programa en C++ donde se capturan datos desde un archivo, se procesan, y luego se escriben en un archivo de salida inFile >> test1 >> test2 >> test3 >> test4 >> test5; // Paso #7 outFile << "Test scores: " << setw(6) << test1 << setw(6) << test2 << setw(6) << test3 << setw(6) << test4 << setw(6) << test5 << endl; // Paso #8 average = (test1 + test2 + test3 + test4 + test5) / 5.0; // Paso #9 outFile << "average test score: " << setw(6) << average << endl; // Paso #10 inFile.close(); // Paso #11 outFile.close(); return 0; }
  • 32. 32 Archivos en C++  ASPECTOS GENERALES SOBRE E/S  Los operadores de inserción y extracción, << y >> respectivamente, están sobrecargados para todos los tipos de datos intrínsecos, sin importar el tipo de streamsobre el que se trabaja.
  • 33. 33 Introducción  Todos las clases derivadas de ios heredan una serie de indicadores de estado que nos permiten saber cómo ha quedado el streamtras la última operación:  good(): Devuelve un valor distinto de 0 si no se ha producido ningún error.  eof(): Devuelve un valor distinto de 0 si se ha llegado al fin de archivo.  bad(): Devuelve un valor distinto de 0 si el streamha quedado inservible.  fail(): Devuelve un valor distinto de 0 si la última operación ha fallado.  El operador ! está sobrecargado, de forma que es posible comprobar si un streamm puede seguir utilizándose o no mediante una expresión del tipo if(!strEntrada) hayFallo();
  • 34. 34 Directos  En los flujos que lo permitan, es posible desplazar el puntero de lectura/escritura con el método seekg, facilitando un desplazamiento y una de las tres constantes siguientes:  ios::beg: El desplazamiento será absoluto.  ios::cur: El desplazamiento será relativo respecto a la posición actual.  ios::end: El desplazamiento será relativo respecto al fin de archivo.  Para determinar la posición actual en el flujo existe el método tellg.
  • 35. 35 Directos  Condiciones para que un archivo sea de organización directa:  Almacenamiento en un soporte direccionable.  •Cada registro debe contener un campo clave.  •Debe haber correspondencia entre los posibles valores de la clave y las direcciones existentes en el soporte.
  • 36. 36 Directos  DIRECCIÓN ABSOLUTA O RELATIVA  •Es un soporte direccionable, cada posición se realiza por su dirección absoluta, número de pista y número de sector de disco. Los archivos directos manipulan direcciones relativas en lugar de absolutas esto hará al programa independiente de la posición absoluta del archivo en el soporte.
  • 37. 37 Directos  Características  oRegistros de longitud fija  oAcceso directo a los registros  oAccede a los registros por medio de direcciones  oUso de soporte direccionable.
  • 38. 38 Directos  Ventajas  oLos archivos pueden insertarse sin destruir otros datos del archivo.  oPara consultar un registro en específico no es necesario accesar a todos  oTiempo de acceso optimo  oLos registros pueden actualizarse o eliminarse sin necesidad de reescribir el archivo completo  (
  • 39. 39 Introducción  Desventajas  oLos datos pueden ser borrados o sobrescritos accidentalmente al menos que se tomen precauciones especiales  oRiesgo de pérdida de precisión y violación de seguridad  oUso menos eficiente de espacio de almacenamiento  oActualizar el archivo es más difícil que método secuencial 
  • 40. 40 Introducción  Operaciones  oCrear archivos  oConsultar registros  oLecturas de registros  oActualización  oReorganización  oBorrado
  • 41. PARA POSICIONARME EN UN ARCHIVO DIRECTO EN EL REGISTRO N <Fstream> .seekg((N-1)* sizeof(mPersona) ) PARA LEER <Fstream>.read((char *) & <Vble En La que se Lee>, sizeof(<Vble En La que se Lee>)) PARA ESCRIBIR <Fstream>.write((char *) & <Vble En La que se Lee>, sizeof(<Vble En La que se Lee>))