SlideShare una empresa de Scribd logo
ARCHIVOS DE REGISTROS

Podemos entender archivos binarios, como archivos de registros o archivos de longitud fija, existen
algunas leves diferencias entre estos tres conceptos pero en esencia hay muchas similitudes y
coincidencias, sin embargo nos referiremos a archivos de registros.

Si hablamos de archivos de registros entonces estaremos almacenando en cada linea de archivo,
registros cuya información tenga una estructura igual en cada linea. Observemos la figura

         Posición    Nombre       Apellido       Edad
                0 Antonia       Perez              50       <== 1ra linea/fila o registro
                1 Carlos        Monsalve           44       <== 2da linea/fila o registro
                2 Mariana       Urdaneta           18       <== 3ra linea/fila o registro

Veamos un ejercicio en C++ donde se almacenan varios registros definidos con la sentencia struct para
organizar los datos.

Definimos la estructura de la siguiente manera

typedef struct {
       char Nombre[20];
       char Apellido[20];
       int Edad;
} datos_persona;

Podemos asignar valores solicitándolos al usuario cuando ejecutemos el programa o asignar valores de
prueba directamente en el código para fines prácticos como lo hacemos a continuación ..

datos_persona persona;

persona.Nombre = “Antonia”;
persona.Apellido = “Perez”;
persona.Edad = 50;

o así

datos_persona persona;

persona = {“Antonia”,”Perez”,50};

También podríamos declarar un arreglo de varios elementos y asignar valores de la siguiente forma ..

datos_persona Vpersonas[3]; // colocamos V de Vector como prefijo al identificador del arreglo

Vpersonas = {{“Antonia”,”Perez”,50},{“Carlos”,”Monsalve”,44},{“Mariana”,”Urdaneta”,18}};

Entrando de nuevo en materia de archivos, sabemos que si queremos almacenar datos en un archivo de
registros debemos indicarle tal instrucción en el programa al momento de aperturarlo. Veamos como
hacerlo:

FILE *fichero;

fichero = fopen(“datos_personas.dat”,”wb”); // <= wb significa de escritura (crearlo) y binario
if (fichero == NULL) {
      cout << “Error: No puede abrir el archivo”;
      return -1
}

Una vez que el archivo se encuentra creado y abierto, podemos ahora ingresar o copiar datos dentro del
archivo, podemos hacerlos con la sentencia fwrite(), que me permite copiar uno o varios registros de
una vez, veamos como:

Si deseamos copiar un solo registro, lo haremos de la siguiente manera,

fwrite (persona, sizeof(datos_persona), 1, fichero);

El orden de los parámetros es el siguiente, primero colocamos la variable donde están los datos que
deseamos almacenar, luego el tamaño del registro en bytes (esto lo conseguimos con la función
sizeof(tipodedato)), seguimos con la cantidad de registros a almacenar y por ultimo el identificador del
archivo donde deseamos almacenar la información.

Ahora, si deseamos copiar varios registros (y lo tenemos almacenado en un arreglo), lo haremos de la
siguiente manera.

fwrite (Vpersonas, sizeof(datos_persona), 3, fichero);

Observe que el primer parámetro es una arreglo, el tamaño del registro sigue siendo el mismo, el
número de registros son los almacenados en el arreglo (en este caso 3) y por supuesto el último es el
identificador del archivo.

Ahora solo quedaría cerrar el archivo y con otro ejercicio podemos consultar los datos para verificar su
almacenamiento.

Nuestro código final quería así ..

int main() {

   typedef struct {
       char Nombre[20];
       char Apellido[20];
       int Edad;
   } datos_persona;

   datos_persona Vpersonas[3];
   Vpersonas = {{“Antonia”,”Perez”,50},{“Carlos”,”Monsalve”,44},{“Mariana”,”Urdaneta”,18}};
FILE *fichero;

    fichero = fopen(“datos_personas.dat”,”wb”); // <= wb significa de escritura (creado) y binario
    if (fichero == NULL) {
          cout << “Error: No puede abrir el archivo”;
          return -1
    }

    fwrite (Vpersonas, sizeof(datos_persona), 3, fichero);

    fclose(fichero);
}

Ahora vamos a ver como hacer para leer nuestro archivo de registros.

Al tener un archivo de registros y no de lineas de texto, tenemos la ventaja que todas las filas o lineas
del archivo tienen la misma longitud, es por ello que también lo llamamos archivos de longitud fija o
registro fijo. Esto nos permitirá ir directamente a leer cualquier registro del archivo sin tener que leer y
pasar previamente por las lineas anteriores (algo parecido a los arreglos), para ello haremos uso de las
funciones: fseek() y ftell()

fseek() nos permitirá situar el cursor del archivo en cualquier línea (o fila) del mismo, así podremos
acceder la información del registro almacenada en la posición indicada, para ubicar el cursor en una
linea determinada debemos conocer el tamaño del registro y multiplicarlo por la cantidad de líneas (o
filas) que deseamos desplazar. Este desplazamiento lo podemos realizar desde el inicio del archivo, el
fin de archivo o la posición actual del curso, el mismo será indicado por parámetro a la función.

Si deseamos ubicar el cursor del archivo en la 3da linea (la que se encuentra en la posición 2)
podriamos ejecutar la siguiente instrucción:


          Posición     Nombre       Apellido        Edad
                  0 Antonia       Perez               50       <== 1ra linea/fila o registro
                  1 Carlos        Monsalve            44       <== 2da linea/fila o registro
      Cursor => 2 Mariana         Urdaneta            18       <== 3ra linea/fila o registro
                  3 Luisa         Perales             14       <== 4ta linea/fila o registro


// Realiza el desplazamiento desde el inicio del archivo
fseek (fichero, 2*sizeof(datos_persona), SEEK_SET);

La función ftell() nos permitirá conocer la posición en bytes donde se encuentra el cursos del archivo,
el cual al ser dividido por el tamaño del registro nos indica el número de la linea donde se encuentra el
cursor dentro del archivo.

La función de lectura de un archivo de registros a utilizar será fread, la cual nos permite leer uno o
varios registros desde la posición donde este ubicado el cursor del archivo y al igual que fwrite,
requiere que sea enviado por parámetro el tamaño del registro y número de registros a leer, que serán
almacenados en la variable indicada como primer parámetro. Veamos como:

fread (&persona, sizeof(datos_persona), 1, fichero);

Veamos un código donde leemos y mostramos por pantalla todas la filas de un archivo de registros.

int main() {

    typedef struct {
        char Nombre[20];
        char Apellido[20];
        int Edad;
    } datos_persona;

    datos_persona personas;
    FILE *fichero;

    fichero = fopen(“datos_personas.dat”,”rb”);
    if (fichero == NULL) {
          cout << “Error: No puede abrir el archivo”;
          return -a;
    }

    int pos = 0;
    int reg_leidos;
    while (!feof(fichero))
    {
        fseek (fichero, pos * sizeof(datos_persona) , SEEK_SET);

        reg_leidos = fread (&persona, sizeof(datos_persona), 1, fichero);
        if (reg_leidos == 0)
            break;

        cout << “Nombre y Apellido : ” << persona.Nombre << “, ” << persona.Apellido << endl;
        cout << “Edad : ” << persona.Edad;
        pos = pos +1;
    }

    fclose(fichero);
}

Ejercicios:

1) Hacer un programa que escriba los registros del archivo al revés desde el último hasta el primero.
2) Hacer una función que me diga cuantos registros tiene una archivo binario de registro fijo.
3) Hacer un programa que dado el archivo del ejemplo de la guía me permita buscar la edad de una
persona dado su nombre y apellido (no cargar el archivo en un vector)
4) Hacer un programa que permita realizar el ejercicio 3) con búsqueda binaria.

Más contenido relacionado

La actualidad más candente

Tarea 6
Tarea 6Tarea 6
Unix
UnixUnix
Capitulo 9, 11 11
Capitulo 9, 11 11Capitulo 9, 11 11
Capitulo 9, 11 11
ileanaydaiana
 
Administarcion de ficheros
Administarcion de ficherosAdministarcion de ficheros
Administarcion de ficheros
Ronny Ramos Diaz
 
Comandos básicos para la terminal de ubuntu
Comandos básicos para la terminal de ubuntuComandos básicos para la terminal de ubuntu
Comandos básicos para la terminal de ubuntu
Monchitocm Cuemtz
 
Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11
jojojojojo25
 
Guia basica de comandos ubuntu
Guia basica de comandos ubuntuGuia basica de comandos ubuntu
Guia basica de comandos ubuntu
ssxdan
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
Any Saula
 
PERMISOS EN UBUNTU
PERMISOS EN UBUNTUPERMISOS EN UBUNTU
PERMISOS EN UBUNTU
Efrain Calle Chambe
 
Practica1 complemento comandos
Practica1  complemento comandosPractica1  complemento comandos
Practica1 complemento comandos
Lorenzo Arce Gomez
 
Manual learn the command line
Manual learn the command lineManual learn the command line
Manual learn the command line
Jeisy Estefany Morrobel Lorenzo
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
leonard1994
 
Cap 9
Cap 9Cap 9
Taller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29oTaller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29o
Tomás Vírseda
 
Haberle pastrian capitulo 9
Haberle pastrian capitulo 9Haberle pastrian capitulo 9
Haberle pastrian capitulo 9
HaberlePastrian
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
Monica Sofia Gomes Borges
 
Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3
Krlos Mendez Lp
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
EdsonRc
 
Introducción a MS-DOS.
Introducción a MS-DOS.Introducción a MS-DOS.
Introducción a MS-DOS.
Ericka Zavala
 
Comandos
ComandosComandos
Comandos
DARWIN Pereira
 

La actualidad más candente (20)

Tarea 6
Tarea 6Tarea 6
Tarea 6
 
Unix
UnixUnix
Unix
 
Capitulo 9, 11 11
Capitulo 9, 11 11Capitulo 9, 11 11
Capitulo 9, 11 11
 
Administarcion de ficheros
Administarcion de ficherosAdministarcion de ficheros
Administarcion de ficheros
 
Comandos básicos para la terminal de ubuntu
Comandos básicos para la terminal de ubuntuComandos básicos para la terminal de ubuntu
Comandos básicos para la terminal de ubuntu
 
Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11Guia cap 9 dorazio 11 11
Guia cap 9 dorazio 11 11
 
Guia basica de comandos ubuntu
Guia basica de comandos ubuntuGuia basica de comandos ubuntu
Guia basica de comandos ubuntu
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
 
PERMISOS EN UBUNTU
PERMISOS EN UBUNTUPERMISOS EN UBUNTU
PERMISOS EN UBUNTU
 
Practica1 complemento comandos
Practica1  complemento comandosPractica1  complemento comandos
Practica1 complemento comandos
 
Manual learn the command line
Manual learn the command lineManual learn the command line
Manual learn the command line
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
 
Cap 9
Cap 9Cap 9
Cap 9
 
Taller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29oTaller Linea de Comandos - Linuxec 29o
Taller Linea de Comandos - Linuxec 29o
 
Haberle pastrian capitulo 9
Haberle pastrian capitulo 9Haberle pastrian capitulo 9
Haberle pastrian capitulo 9
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3Archivos secuenciales indexados UMG grupo 3
Archivos secuenciales indexados UMG grupo 3
 
Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++Archivos secuenciales-indexados C++
Archivos secuenciales-indexados C++
 
Introducción a MS-DOS.
Introducción a MS-DOS.Introducción a MS-DOS.
Introducción a MS-DOS.
 
Comandos
ComandosComandos
Comandos
 

Destacado

Localizacion
LocalizacionLocalizacion
Localizacion
teresa_soto
 
Arquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecuciónArquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecución
Grupo Linux Universidad Distrtal
 
Sistemade ficheros
Sistemade ficherosSistemade ficheros
Sistemade ficheros
25nsm25
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
nakaryortegaleon
 
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
Diego Enrique Hernández González
 
Archivonomía documento registro y archivo
Archivonomía   documento registro y archivoArchivonomía   documento registro y archivo
Archivonomía documento registro y archivo
Juan Vera Serrano
 
Metodo de busqueda secuencial
Metodo de busqueda secuencialMetodo de busqueda secuencial
Metodo de busqueda secuencial
Luis Eduardo Berrocal
 
Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
luismy_martinez
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
Gustavo Salazar Loor
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
favi_hola
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
Vane Borjas
 
Administracion archivos sena
Administracion archivos senaAdministracion archivos sena
Administracion archivos sena
giovatovar
 

Destacado (12)

Localizacion
LocalizacionLocalizacion
Localizacion
 
Arquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecuciónArquitectura del sistema y niveles de ejecución
Arquitectura del sistema y niveles de ejecución
 
Sistemade ficheros
Sistemade ficherosSistemade ficheros
Sistemade ficheros
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
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
 
Archivonomía documento registro y archivo
Archivonomía   documento registro y archivoArchivonomía   documento registro y archivo
Archivonomía documento registro y archivo
 
Metodo de busqueda secuencial
Metodo de busqueda secuencialMetodo de busqueda secuencial
Metodo de busqueda secuencial
 
Archivo Secuencial
Archivo SecuencialArchivo Secuencial
Archivo Secuencial
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
Administracion archivos sena
Administracion archivos senaAdministracion archivos sena
Administracion archivos sena
 

Similar a Archivos de Registros

Archivossin
ArchivossinArchivossin
Archivossin
Erick Po
 
funcion de archivo secuencial
funcion de archivo secuencial funcion de archivo secuencial
funcion de archivo secuencial
Jose Andres Berganza Ortiz
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
mauro0210
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
Gero Calderon
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexados
Alan Orellana Polanco
 
Prog_II_archivo_guia_5
Prog_II_archivo_guia_5Prog_II_archivo_guia_5
Tema1oficial
Tema1oficialTema1oficial
Tema1oficial
Sandra More
 
Acceso a datos
Acceso a datosAcceso a datos
Acceso a datos
Anuska González
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
Darwin Durand
 
Lab archivos
Lab archivosLab archivos
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
devxon9
 
Ficheros en Java marisabc
Ficheros en Java marisabcFicheros en Java marisabc
Ficheros en Java marisabc
marisabc4
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
Bryan Gordillo
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
Bryan Gordillo
 
Qbasic2
Qbasic2Qbasic2
Qbasic2
Jheny Segales
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
Cesar Oswaldo Osorio Agualongo
 
7 manejo de archivos
7 manejo de archivos7 manejo de archivos
7 manejo de archivos
Claribel Eusebio Nolasco
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serialización
Antonio Palomares Sender
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
Fernando Omar Arciniega Martinez
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
Ivan Ramirez Iglesias
 

Similar a Archivos de Registros (20)

Archivossin
ArchivossinArchivossin
Archivossin
 
funcion de archivo secuencial
funcion de archivo secuencial funcion de archivo secuencial
funcion de archivo secuencial
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexados
 
Prog_II_archivo_guia_5
Prog_II_archivo_guia_5Prog_II_archivo_guia_5
Prog_II_archivo_guia_5
 
Tema1oficial
Tema1oficialTema1oficial
Tema1oficial
 
Acceso a datos
Acceso a datosAcceso a datos
Acceso a datos
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Lab archivos
Lab archivosLab archivos
Lab archivos
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Ficheros en Java marisabc
Ficheros en Java marisabcFicheros en Java marisabc
Ficheros en Java marisabc
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
 
Bryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficherosBryan gordillo ensayo_ficheros
Bryan gordillo ensayo_ficheros
 
Qbasic2
Qbasic2Qbasic2
Qbasic2
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
7 manejo de archivos
7 manejo de archivos7 manejo de archivos
7 manejo de archivos
 
Framework .NET 3.5 14 Gestión de archivos y serialización
Framework .NET 3.5 14  Gestión de archivos y serializaciónFramework .NET 3.5 14  Gestión de archivos y serialización
Framework .NET 3.5 14 Gestión de archivos y serialización
 
Utilización de la clase math
Utilización de la clase mathUtilización de la clase math
Utilización de la clase math
 
(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
 

Más de Javier Rivera

Tipo de Bloques: Scratch
Tipo de Bloques: ScratchTipo de Bloques: Scratch
Tipo de Bloques: Scratch
Javier Rivera
 
Arquitectura moderna
Arquitectura modernaArquitectura moderna
Arquitectura moderna
Javier Rivera
 
Capacidad Electrica
Capacidad ElectricaCapacidad Electrica
Capacidad Electrica
Javier Rivera
 
Tecnologías de Redes 2 (WAN)
Tecnologías de Redes 2 (WAN)Tecnologías de Redes 2 (WAN)
Tecnologías de Redes 2 (WAN)
Javier Rivera
 
Tecnologías de Redes 1 (LAN)
Tecnologías de Redes 1 (LAN)Tecnologías de Redes 1 (LAN)
Tecnologías de Redes 1 (LAN)
Javier Rivera
 
Programa detallado de Redes UNEFA
Programa detallado de Redes UNEFAPrograma detallado de Redes UNEFA
Programa detallado de Redes UNEFA
Javier Rivera
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1
Javier Rivera
 
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
Javier Rivera
 
Propuesta Capacitación de Herramientas Didácticas TIC
Propuesta Capacitación de Herramientas Didácticas TICPropuesta Capacitación de Herramientas Didácticas TIC
Propuesta Capacitación de Herramientas Didácticas TIC
Javier Rivera
 
Grupo2MacroDisenoLibreOffice
Grupo2MacroDisenoLibreOfficeGrupo2MacroDisenoLibreOffice
Grupo2MacroDisenoLibreOffice
Javier Rivera
 
Modelo trabajo de investigacion Grupo2
Modelo trabajo de investigacion Grupo2Modelo trabajo de investigacion Grupo2
Modelo trabajo de investigacion Grupo2
Javier Rivera
 
Elearning reto docente
Elearning reto docenteElearning reto docente
Elearning reto docente
Javier Rivera
 
4to Examen PII UNEFA
4to Examen PII  UNEFA4to Examen PII  UNEFA
4to Examen PII UNEFA
Javier Rivera
 
Cuestionario
CuestionarioCuestionario
Cuestionario
Javier Rivera
 
Examen 3 unefa
Examen 3 unefa Examen 3 unefa
Examen 3 unefa
Javier Rivera
 
Examen1 LP2
Examen1 LP2Examen1 LP2
Examen1 LP2
Javier Rivera
 
Ordenamiento básico
Ordenamiento básicoOrdenamiento básico
Ordenamiento básico
Javier Rivera
 
Lenguaje de Programación II
Lenguaje de Programación IILenguaje de Programación II
Lenguaje de Programación II
Javier Rivera
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
Javier Rivera
 

Más de Javier Rivera (19)

Tipo de Bloques: Scratch
Tipo de Bloques: ScratchTipo de Bloques: Scratch
Tipo de Bloques: Scratch
 
Arquitectura moderna
Arquitectura modernaArquitectura moderna
Arquitectura moderna
 
Capacidad Electrica
Capacidad ElectricaCapacidad Electrica
Capacidad Electrica
 
Tecnologías de Redes 2 (WAN)
Tecnologías de Redes 2 (WAN)Tecnologías de Redes 2 (WAN)
Tecnologías de Redes 2 (WAN)
 
Tecnologías de Redes 1 (LAN)
Tecnologías de Redes 1 (LAN)Tecnologías de Redes 1 (LAN)
Tecnologías de Redes 1 (LAN)
 
Programa detallado de Redes UNEFA
Programa detallado de Redes UNEFAPrograma detallado de Redes UNEFA
Programa detallado de Redes UNEFA
 
Diseño arquitectonico 1
Diseño arquitectonico 1Diseño arquitectonico 1
Diseño arquitectonico 1
 
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
Proyecto de Comunidad Virtual de Aprendizaje para el uso y desarrollo de soft...
 
Propuesta Capacitación de Herramientas Didácticas TIC
Propuesta Capacitación de Herramientas Didácticas TICPropuesta Capacitación de Herramientas Didácticas TIC
Propuesta Capacitación de Herramientas Didácticas TIC
 
Grupo2MacroDisenoLibreOffice
Grupo2MacroDisenoLibreOfficeGrupo2MacroDisenoLibreOffice
Grupo2MacroDisenoLibreOffice
 
Modelo trabajo de investigacion Grupo2
Modelo trabajo de investigacion Grupo2Modelo trabajo de investigacion Grupo2
Modelo trabajo de investigacion Grupo2
 
Elearning reto docente
Elearning reto docenteElearning reto docente
Elearning reto docente
 
4to Examen PII UNEFA
4to Examen PII  UNEFA4to Examen PII  UNEFA
4to Examen PII UNEFA
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Examen 3 unefa
Examen 3 unefa Examen 3 unefa
Examen 3 unefa
 
Examen1 LP2
Examen1 LP2Examen1 LP2
Examen1 LP2
 
Ordenamiento básico
Ordenamiento básicoOrdenamiento básico
Ordenamiento básico
 
Lenguaje de Programación II
Lenguaje de Programación IILenguaje de Programación II
Lenguaje de Programación II
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 

Último

Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
RicardoValdiviaVega
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
marilynfloresyomona1
 
Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.
genesiscabezas469
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Juan Martín Martín
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
Ana Fernandez
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 

Último (20)

Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdfCronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
Cronica-de-una-Muerte-Anunciada - Gabriel Garcia Marquez.pdf
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
Módulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escrituraMódulo 1 de didactica de la lecto escritura
Módulo 1 de didactica de la lecto escritura
 
Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.Presentación de la historia de PowerPoint y sus características más relevantes.
Presentación de la historia de PowerPoint y sus características más relevantes.
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBALMATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
MATERIAL ESCOLAR 2024-2025 3 AÑOS CEIP SAN CRISTÓBAL
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 

Archivos de Registros

  • 1. ARCHIVOS DE REGISTROS Podemos entender archivos binarios, como archivos de registros o archivos de longitud fija, existen algunas leves diferencias entre estos tres conceptos pero en esencia hay muchas similitudes y coincidencias, sin embargo nos referiremos a archivos de registros. Si hablamos de archivos de registros entonces estaremos almacenando en cada linea de archivo, registros cuya información tenga una estructura igual en cada linea. Observemos la figura Posición Nombre Apellido Edad 0 Antonia Perez 50 <== 1ra linea/fila o registro 1 Carlos Monsalve 44 <== 2da linea/fila o registro 2 Mariana Urdaneta 18 <== 3ra linea/fila o registro Veamos un ejercicio en C++ donde se almacenan varios registros definidos con la sentencia struct para organizar los datos. Definimos la estructura de la siguiente manera typedef struct { char Nombre[20]; char Apellido[20]; int Edad; } datos_persona; Podemos asignar valores solicitándolos al usuario cuando ejecutemos el programa o asignar valores de prueba directamente en el código para fines prácticos como lo hacemos a continuación .. datos_persona persona; persona.Nombre = “Antonia”; persona.Apellido = “Perez”; persona.Edad = 50; o así datos_persona persona; persona = {“Antonia”,”Perez”,50}; También podríamos declarar un arreglo de varios elementos y asignar valores de la siguiente forma .. datos_persona Vpersonas[3]; // colocamos V de Vector como prefijo al identificador del arreglo Vpersonas = {{“Antonia”,”Perez”,50},{“Carlos”,”Monsalve”,44},{“Mariana”,”Urdaneta”,18}}; Entrando de nuevo en materia de archivos, sabemos que si queremos almacenar datos en un archivo de
  • 2. registros debemos indicarle tal instrucción en el programa al momento de aperturarlo. Veamos como hacerlo: FILE *fichero; fichero = fopen(“datos_personas.dat”,”wb”); // <= wb significa de escritura (crearlo) y binario if (fichero == NULL) { cout << “Error: No puede abrir el archivo”; return -1 } Una vez que el archivo se encuentra creado y abierto, podemos ahora ingresar o copiar datos dentro del archivo, podemos hacerlos con la sentencia fwrite(), que me permite copiar uno o varios registros de una vez, veamos como: Si deseamos copiar un solo registro, lo haremos de la siguiente manera, fwrite (persona, sizeof(datos_persona), 1, fichero); El orden de los parámetros es el siguiente, primero colocamos la variable donde están los datos que deseamos almacenar, luego el tamaño del registro en bytes (esto lo conseguimos con la función sizeof(tipodedato)), seguimos con la cantidad de registros a almacenar y por ultimo el identificador del archivo donde deseamos almacenar la información. Ahora, si deseamos copiar varios registros (y lo tenemos almacenado en un arreglo), lo haremos de la siguiente manera. fwrite (Vpersonas, sizeof(datos_persona), 3, fichero); Observe que el primer parámetro es una arreglo, el tamaño del registro sigue siendo el mismo, el número de registros son los almacenados en el arreglo (en este caso 3) y por supuesto el último es el identificador del archivo. Ahora solo quedaría cerrar el archivo y con otro ejercicio podemos consultar los datos para verificar su almacenamiento. Nuestro código final quería así .. int main() { typedef struct { char Nombre[20]; char Apellido[20]; int Edad; } datos_persona; datos_persona Vpersonas[3]; Vpersonas = {{“Antonia”,”Perez”,50},{“Carlos”,”Monsalve”,44},{“Mariana”,”Urdaneta”,18}};
  • 3. FILE *fichero; fichero = fopen(“datos_personas.dat”,”wb”); // <= wb significa de escritura (creado) y binario if (fichero == NULL) { cout << “Error: No puede abrir el archivo”; return -1 } fwrite (Vpersonas, sizeof(datos_persona), 3, fichero); fclose(fichero); } Ahora vamos a ver como hacer para leer nuestro archivo de registros. Al tener un archivo de registros y no de lineas de texto, tenemos la ventaja que todas las filas o lineas del archivo tienen la misma longitud, es por ello que también lo llamamos archivos de longitud fija o registro fijo. Esto nos permitirá ir directamente a leer cualquier registro del archivo sin tener que leer y pasar previamente por las lineas anteriores (algo parecido a los arreglos), para ello haremos uso de las funciones: fseek() y ftell() fseek() nos permitirá situar el cursor del archivo en cualquier línea (o fila) del mismo, así podremos acceder la información del registro almacenada en la posición indicada, para ubicar el cursor en una linea determinada debemos conocer el tamaño del registro y multiplicarlo por la cantidad de líneas (o filas) que deseamos desplazar. Este desplazamiento lo podemos realizar desde el inicio del archivo, el fin de archivo o la posición actual del curso, el mismo será indicado por parámetro a la función. Si deseamos ubicar el cursor del archivo en la 3da linea (la que se encuentra en la posición 2) podriamos ejecutar la siguiente instrucción: Posición Nombre Apellido Edad 0 Antonia Perez 50 <== 1ra linea/fila o registro 1 Carlos Monsalve 44 <== 2da linea/fila o registro Cursor => 2 Mariana Urdaneta 18 <== 3ra linea/fila o registro 3 Luisa Perales 14 <== 4ta linea/fila o registro // Realiza el desplazamiento desde el inicio del archivo fseek (fichero, 2*sizeof(datos_persona), SEEK_SET); La función ftell() nos permitirá conocer la posición en bytes donde se encuentra el cursos del archivo, el cual al ser dividido por el tamaño del registro nos indica el número de la linea donde se encuentra el cursor dentro del archivo. La función de lectura de un archivo de registros a utilizar será fread, la cual nos permite leer uno o varios registros desde la posición donde este ubicado el cursor del archivo y al igual que fwrite,
  • 4. requiere que sea enviado por parámetro el tamaño del registro y número de registros a leer, que serán almacenados en la variable indicada como primer parámetro. Veamos como: fread (&persona, sizeof(datos_persona), 1, fichero); Veamos un código donde leemos y mostramos por pantalla todas la filas de un archivo de registros. int main() { typedef struct { char Nombre[20]; char Apellido[20]; int Edad; } datos_persona; datos_persona personas; FILE *fichero; fichero = fopen(“datos_personas.dat”,”rb”); if (fichero == NULL) { cout << “Error: No puede abrir el archivo”; return -a; } int pos = 0; int reg_leidos; while (!feof(fichero)) { fseek (fichero, pos * sizeof(datos_persona) , SEEK_SET); reg_leidos = fread (&persona, sizeof(datos_persona), 1, fichero); if (reg_leidos == 0) break; cout << “Nombre y Apellido : ” << persona.Nombre << “, ” << persona.Apellido << endl; cout << “Edad : ” << persona.Edad; pos = pos +1; } fclose(fichero); } Ejercicios: 1) Hacer un programa que escriba los registros del archivo al revés desde el último hasta el primero. 2) Hacer una función que me diga cuantos registros tiene una archivo binario de registro fijo. 3) Hacer un programa que dado el archivo del ejemplo de la guía me permita buscar la edad de una persona dado su nombre y apellido (no cargar el archivo en un vector) 4) Hacer un programa que permita realizar el ejercicio 3) con búsqueda binaria.