SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
Elementos de Programación

                                                        Ficheros




Elementos de Programaci ón. Ficheros. Curso 2002/2003              1




                                                        Índice
           1.        Introducción. Concepto de fichero
           2.        Generalidades sobre ficheros
           3.        Ficheros en C++
           4.        Librerías de manejo de ficheros en C++
           5.        Ficheros en C
           6.        Librerías de manejo de ficheros en C
           7.        Ejemplos



Elementos de Programaci ón. Ficheros. Curso 2002/2003              2




                                                                       1
Concepto de fichero
      FAlmacenamiento PERMANENTE de información que
       reside en la memoria secundaria (disco).
       Son independientes de los programas que los utilizan.

      FCaracterísticas:
              ü Residen en la memoria secundaria à Tamaño no limitado
                por la memoria.
              ü Utilizados por programas distintos.
              ü Identificados por un nombre externo, dependiente del
                sistema operativo, y un nombre interno, dependiente del
                lenguaje de programación.
              ü Contienen secuencias de bytes.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                  3




                         Generalidades sobre ficheros
        F Modo de acceso:
                ü Secuencial. Para acceder a un objeto se debe acceder a los objetos
                  almacenados previamente en el fichero.
                ü Directo o Aleatorio. Se accede directamente al objeto, sin recorrer los
                  anteriores .

        F Tipos de operación:
                ü Lectura o Entrada.
                ü Escritura o Salida.

        F Formato de las operaciones:
                ü E/S sin formato. Representación binaria de la información es igual en
                  memoria y en disco.
                ü E/S con formato. Cambio en la representación a formatos legibles
                  humanamente.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                  4




                                                                                            2
Otras consideraciones sobre ficheros
       FPunteros de los ficheros
               ü Los ficheros tienen asociados un puntero de lectura y otro
                 de escritura que indican la posición donde se realizará la
                 siguiente operación de E/S.
               ü En C los dos punteros son el mismo; en C++ hay uno para
                 cada operación.

       FMarca de Fin de Fichero
               ü No existe una marca almacenada en el fichero que indique
                 su fin.
               ü Para su detección hay que usar las funciones feof() o eof().
               ü Para que las funciones anteriores detecten el final de
                 fichero, debe leerse más allá del final de fichero.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                   5




                                             Ficheros en C++
      F C++ proporciona tres clases: fstream, ifstream y ofstream.
      F Nombres internos de los ficheros (streams) à objetos de las
        clases anteriores.
      F Declaración de un objeto de uno de los tipos anteriores à
        establece un canal de comunicación entre un programa y un
        archivo almacenado en la memoria secundaria.

                                ios

                                            istream
                                                        ifstream
                                                                   iostream
                                            ostream                           fstream
                                                        ofstream


Elementos de Programaci ón. Ficheros. Curso 2002/2003                                   6




                                                                                            3
Operaciones con ficheros en C++
       F Apertura y creación de ficheros
               void fstream::open(const char *name, int modo)

               ü Abre el fichero “name” en el modo indicado. No retorna ningún valor.

           ios::app                  Abre fichero (si no existe lo crea), para escribir al final de él

           ios::ate                  Abre fichero (si no existe lo crea), para escribir en cualquier lugar

           ios::in                   Abre fichero para entrada
           ios::out                  Crea fichero para salida
           ios::trunc                Descarta el contenido del fichero (si existe)
           ios::nocreate             Si el fichero no existe, la operación de apertura falla
           ios::noreplace Si el fichero existe, la operación de apertura falla
           ios::binary               Abre un fichero en modo binario
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                                          7




                   Operaciones con ficheros en C++
       F Lectura secuencial con formato
               fstream & operator >> (fstream &stream, tipo &var)
               ü Modifica var con el contenido leido de stream. La lectura termina al
                 encontrar blanco, tabulador o salto de línea.
               ü Retorna una referencia a stream.

       F Escritura secuencial con formato
               fstream & operator << (fstream &stream, tipo &var)
               ü Modifica el fichero stream escribiendo en él el contenido de var.
               ü Retorna una referencia a stream.

                   #include <fstream.h>
                   ……                                     int x = 10, y;
                   ofstream f2; ifstream f3;
                   ……                                     f2 << “ Escribo al fichero datos2.dat: “ << x << endl;
                   f2.open(“ datos2.dat ”);               f3 >> y; // lectura del fichero “ datos3.dat ” un entero
                   f3.open(“ datos3.dat ”);
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                                          8




                                                                                                                     4
Operaciones con ficheros en C++
       F Lectura secuencial sin formato (binaria)
               istream & fstream::read (char * ptr, int size)
               ü Lee size bytes del fichero stream y los almacena en la dirección
                 indicada por prt.
               ü Retorna una referencia a stream.

       F Escritura secuencial sin formato (binaria)
               ostream & fstream::write (const char * ptr, int size)
               ü Escribe size bytes al fichero stream desde la dirección indicada por ptr.
               ü Retorna una referencia a stream.

           #include <fstream.h>
           ……                                           int x = 10, y;
           ofstream f2; ifstream f3;
           ……                                           f2.write((const char*) &x, sizeof(int));
           f2.open(“ datos2.dat ”, ios::binary);        f3.read ((char *) & y, sizeof(int);
           f3.open(“ datos3.dat ”, ios::binary);
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                              9




                   Operaciones con ficheros en C++
       F Cierre de ficheros
               fstream::close ()
               ü Cierra el fichero y vacía todos los buffers asociados.
               ü No retorna ningún valor.

       F Detectar el fin de fichero
               int ios::eof ()
               ü Indica si se han leído todos los datos del fichero.
               ü Retorna 0 si no llegó al final, distinto de 0 en caso contrario.

       F Bytes leidos con read() (lectura sin formato)
               int istream::gcount ()
               ü Después de una operación de lectura binaria, indica cuántos bytes se
                 han leído del fichero.
               ü Retorna el nú mero de bytes leídos de un stream.
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                              10




                                                                                                        5
Ficheros especiales en C++
          FDefinidos en iostream.h

          Fcin: Objeto de la clase istream conectado a la
           entrada estándar (teclado).
          Fcout: Objeto de la clase ostream conectado a la
           salida estándar (pantalla).
          Fcerr: Objeto de la clase ostream conectado a la
           salida estándar de error (pantalla). Sin buffer.
          Fclog: Objeto de la clase ostream conectado a la
           salida estándar de error (pantalla). Con buffer.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                         11




                        Acceso secuencial y aleatorio

       FLas operaciones de E/S provocan un desplazamiento
        de los punteros del fichero equivalente al número de
        bytes leídos/escritos El puntero queda apuntando al
        siguiente byte.

       FEn el acceso secuencial, los punteros no se desplazan si
        no es con operaciones de E/S.
       FEn el acceso aleatorio (o directo):
               ü Uso de los métodos seekg, seekp, tellg y tellp (fstream.h)


Elementos de Programaci ón. Ficheros. Curso 2002/2003                         12




                                                                                   6
Acceso aleatorio con ficheros en C++
       istream& flectura.seekg(streamoff offset, seek_dir dir);
       ü Desplaza el puntero de lectura del fichero flectura offset bytes desde la
         ubicación indicada por dir. Valores de dir apropiados son:
               – ios::beg desde el inicio de fichero.
               – ios::cur desde la posición actual del fichero.
               – ios::end desde el final de fichero.
       ü Retorna una referencia al fichero flectura.

       ostream& fescritura.seekp(streamoff offset, seek_dir dir);
       ü Igual que seekg, pero para el puntero de escritura.

       long flectura.tellg();
       ü Retorna la posición actual (en bytes) del puntero de lectura del fichero
         flectura, contando desde el principio de fichero.
       long fescritura.tellp();
       ü Igual que tellg, pero para el puntero de escritura.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                13




           Acceso aleatorio con ficheros en C++
       FFicheros de entrada: istream
               ü Definidos los métodos: tellg y seekg.

       FFicheros de salida: ostream
               ü Definidos los métodos: tellp y seekp.

       FFicheros de entrada/salida: fstream
               ü Presentan puntero de lectura y escritura à tienen definidos
                 los cuatro métodos.
               ü Punteros de lectura y escritura se modifican
                 simultáneamente al llamar a los dos métodos (seekg y
                 seekp).


Elementos de Programaci ón. Ficheros. Curso 2002/2003                                14




                                                                                          7
Ficheros en C

        FC proporciona el tipo FILE.
        FLos nombres internos de los ficheros (streams) son
         punteros al tipo.

                #include <stdio.h> // incluye el tipo y las operaciones con ficheros

                FILE *f;                        // declaración




Elementos de Programaci ón. Ficheros. Curso 2002/2003                                              15




                       Operaciones con ficheros en C
       F Apertura y creación de ficheros
               FILE *fopen(const char *name, const char * modo)

               ü Abre el fichero “name” en el modo indicado. No retorna ningún valor.

           r       Abre fichero para lectura al principio (entrada)

           w       Abre fichero para escritura al principio (salida)

           a       Abre fichero (si no existe lo crea), para escribir al final de él

           r+      Abre fichero existente para actualización (lectura o escritura)

           w+ Abre fichero, si existe lo sobreescribe, para actualización (lectura o escritura)
           a+      Abre fichero (si no existe lo crea), para actualización (lectura o escritura)
           t       Abre fichero en modo texto
           b       Abre fichero en modo binario
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                              16




                                                                                                        8
Operaciones con ficheros en C
       F Lectura secuencial con formato
               int fscanf(FILE * stream, const char *formato [, ptr,...])
               ü Modifica el contenido de las direcciones de las variables ptr con los valores
                 leídos de stream.
               ü Retorna el número de campos de entrada escaneados y almacenados en las
                 variables respectivas. Si se lee más allá del final de fichero retorna EOF.
       F Escritura secuencial con formato
               int fprintf(FILE * stream, const char *formato [, arg,...])
               ü Escribe en stream la información de arg en el formato indicado.
               ü Retorna el número de bytes escritos. En caso de error retorna EOF.
       F Formato
               d    entero (int)
               ld   entero largo (long)
               f    real (float )
               lf   real largo (double)
               s    string (char *, char[ ])
               c    carácter (char)

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                            17




                       Operaciones con ficheros en C
          F Lectura secuencial sin formato (binaria)
                 size_t fread(void *ptr, size_t size , size_t n, FILE *stream)
                 ü Lee n bloques de tamaño size del fichero stream sobre la dirección de
                   memoria prt.
                 ü Retorna el nú mero de bloques leídos. Si hay error, retorna un número
                   menor que n.

          F Escritura secuencial sin formato (binaria)
                 size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream)
                 ü Escribe n bloques de tamaño size al fichero stream desde la dirección
                   indicada por ptr.
                 ü Retorna el nú mero de bloques leídos. Si hay error, retorna un número
                   menor que n.



Elementos de Programaci ón. Ficheros. Curso 2002/2003                                            18




                                                                                                      9
Operaciones con ficheros en C
       F Cierre de ficheros
               int fclose (FILE* stream)
               ü Cierra el fichero y vacía todos los buffers asociados.
               ü Retorna 0 en caso de éxito y EOF en caso de error.

       F Detectar el fin de fichero
               int feof (FILE *stream)
               ü Indica si se han leído todos los datos del fichero.
               ü Retorna 0 si no llegó al final, distinto de 0 en caso contrario.

       F Borrado de ficheros
               int remove (const char * name)
               ü Borra el fichero de nombre name del sistema de ficheros.
               ü Retorna 0 en caso de éxito y -1 en caso de error.

Elementos de Programaci ón. Ficheros. Curso 2002/2003                                19




                                 Ficheros especiales en C
          F Definidos en stdio.h

          F stdin: Fichero conectado a la entrada estándar (teclado).

          F stdout: Fichero conectado a la salida estándar (pantalla).

          F stdcerr: Fichero conectado a la salida estándar de error
            (pantalla). Sin buffer.

          F Funciones de E/S asociadas a los ficheros especiales:
                 – printf: igual que fprintf pero con stdout como parámetro por defecto
                   para FILE *stream.
                 – scanf: igual que fscanf pero con stdin como parámetro por defecto
                   para FILE *stream.


Elementos de Programaci ón. Ficheros. Curso 2002/2003                                20




                                                                                          10
Acceso aleatorio con ficheros en C
          ü Uso de las funciones rewind, fseek, ftell (stdio.h).
          void rewind(FILE *stream);
          ü Posiciona el puntero del fichero stream al principio.
          ü Retorna nada.
          int fseek(FILE * stream, long offset, int whence);
          ü Posiciona el puntero del fichero stream en offset bytes desde donde
            indique whence. Valores de whence:
                 – 0 desde el inicio de fichero.
                 – 1 desde la posición actual del fichero.
                 – 2 desde el final de fichero.
          ü Retorna 0 si la operación tuvo éxito y cualquier otro valor en caso de
            error.
          long int ftell(FILE * stream);
          ü Retorna la posición actual (en bytes) del puntero del fichero stream
            contando desde el principio del fichero. En caso de error retorna.
Elementos de Programaci ón. Ficheros. Curso 2002/2003                                21




                                                                                          11

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (18)

Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
archivo en lenguaje en C
archivo en lenguaje en Carchivo en lenguaje en C
archivo en lenguaje en C
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
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
 
ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
 
Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
Utp pti_s11_archivos
 Utp pti_s11_archivos Utp pti_s11_archivos
Utp pti_s11_archivos
 
Lectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLabLectura y Escritura de archivos a MatLab
Lectura y Escritura de archivos a MatLab
 
Utilizacion de archivos en Dev C++
Utilizacion de archivos en Dev C++Utilizacion de archivos en Dev C++
Utilizacion de archivos en Dev C++
 
ARCHIVOS EN C+
ARCHIVOS EN  C+ARCHIVOS EN  C+
ARCHIVOS EN C+
 
FLEX Y BISON
FLEX Y BISONFLEX Y BISON
FLEX Y BISON
 
Archivos estructurados
Archivos estructuradosArchivos estructurados
Archivos estructurados
 

Andere mochten auch

VENTAJAS Y DESVENTAJAS
VENTAJAS Y DESVENTAJASVENTAJAS Y DESVENTAJAS
VENTAJAS Y DESVENTAJASkariina
 
Iso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitosIso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitosILEQUIROZ
 
Mi mo nogragia
Mi mo nogragiaMi mo nogragia
Mi mo nogragialuzezitaa
 
Iso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitosIso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitoshapapacho
 
Documentos de investigación 2015
Documentos de investigación 2015Documentos de investigación 2015
Documentos de investigación 2015oliverio5530
 
Mapa Estratégico do Comercio Exterior de Minas Gerais
Mapa Estratégico do Comercio Exterior de Minas GeraisMapa Estratégico do Comercio Exterior de Minas Gerais
Mapa Estratégico do Comercio Exterior de Minas GeraisCentral Exportaminas
 
Roxanne Allen Media Evaluation
Roxanne Allen Media EvaluationRoxanne Allen Media Evaluation
Roxanne Allen Media Evaluationguestde4571
 
Yahoo! Hack Europe
Yahoo! Hack EuropeYahoo! Hack Europe
Yahoo! Hack EuropeHortonworks
 
Yahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopYahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopHortonworks
 
Synergy Stocktaking Aidan Mc Donnell
Synergy Stocktaking Aidan Mc DonnellSynergy Stocktaking Aidan Mc Donnell
Synergy Stocktaking Aidan Mc DonnellDublingame
 
10. Edicion Html. Estilos Edicion Html. Tecnicas 0001
10. Edicion Html. Estilos Edicion Html. Tecnicas   000110. Edicion Html. Estilos Edicion Html. Tecnicas   0001
10. Edicion Html. Estilos Edicion Html. Tecnicas 0001José M. Padilla
 
Dirks,kurt, trust in lead. & team performance
Dirks,kurt, trust in lead. & team performanceDirks,kurt, trust in lead. & team performance
Dirks,kurt, trust in lead. & team performancehensun
 
Metodo De Solucion De Problemas De Polya[1]
Metodo De  Solucion De Problemas De Polya[1]Metodo De  Solucion De Problemas De Polya[1]
Metodo De Solucion De Problemas De Polya[1]paula853
 
EducaçãO Do Campo
EducaçãO Do CampoEducaçãO Do Campo
EducaçãO Do Campoculturaafro
 

Andere mochten auch (20)

VENTAJAS Y DESVENTAJAS
VENTAJAS Y DESVENTAJASVENTAJAS Y DESVENTAJAS
VENTAJAS Y DESVENTAJAS
 
Iso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitosIso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitos
 
Mi mo nogragia
Mi mo nogragiaMi mo nogragia
Mi mo nogragia
 
Iso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitosIso 14001 2004 ntc requisitos
Iso 14001 2004 ntc requisitos
 
Documentos de investigación 2015
Documentos de investigación 2015Documentos de investigación 2015
Documentos de investigación 2015
 
Mapa Estratégico do Comercio Exterior de Minas Gerais
Mapa Estratégico do Comercio Exterior de Minas GeraisMapa Estratégico do Comercio Exterior de Minas Gerais
Mapa Estratégico do Comercio Exterior de Minas Gerais
 
Path to Personalization
Path to PersonalizationPath to Personalization
Path to Personalization
 
Roxanne Allen Media Evaluation
Roxanne Allen Media EvaluationRoxanne Allen Media Evaluation
Roxanne Allen Media Evaluation
 
Apache Ant
Apache AntApache Ant
Apache Ant
 
Practica 3
Practica  3Practica  3
Practica 3
 
Yahoo! Hack Europe
Yahoo! Hack EuropeYahoo! Hack Europe
Yahoo! Hack Europe
 
Yahoo! Hack Europe Workshop
Yahoo! Hack Europe WorkshopYahoo! Hack Europe Workshop
Yahoo! Hack Europe Workshop
 
Synergy Stocktaking Aidan Mc Donnell
Synergy Stocktaking Aidan Mc DonnellSynergy Stocktaking Aidan Mc Donnell
Synergy Stocktaking Aidan Mc Donnell
 
10. Edicion Html. Estilos Edicion Html. Tecnicas 0001
10. Edicion Html. Estilos Edicion Html. Tecnicas   000110. Edicion Html. Estilos Edicion Html. Tecnicas   0001
10. Edicion Html. Estilos Edicion Html. Tecnicas 0001
 
Dirks,kurt, trust in lead. & team performance
Dirks,kurt, trust in lead. & team performanceDirks,kurt, trust in lead. & team performance
Dirks,kurt, trust in lead. & team performance
 
Missão, Visão e Valores
Missão, Visão e ValoresMissão, Visão e Valores
Missão, Visão e Valores
 
Metodo De Solucion De Problemas De Polya[1]
Metodo De  Solucion De Problemas De Polya[1]Metodo De  Solucion De Problemas De Polya[1]
Metodo De Solucion De Problemas De Polya[1]
 
R5 0786-1
R5 0786-1R5 0786-1
R5 0786-1
 
EducaçãO Do Campo
EducaçãO Do CampoEducaçãO Do Campo
EducaçãO Do Campo
 
Libro Creatividad y emprendimiento
Libro Creatividad y emprendimientoLibro Creatividad y emprendimiento
Libro Creatividad y emprendimiento
 

Ähnlich wie Ficheros cyc++ (20)

Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 
2-Archivos.ppt
2-Archivos.ppt2-Archivos.ppt
2-Archivos.ppt
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
ARCHIVOS_Dom.pdf
ARCHIVOS_Dom.pdfARCHIVOS_Dom.pdf
ARCHIVOS_Dom.pdf
 
03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf03. Archivos Completo Obliogatorio Para Imprimir.pdf
03. Archivos Completo Obliogatorio Para Imprimir.pdf
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
 
ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C ARCHIVO EN LENGUAJE C
ARCHIVO EN LENGUAJE C
 
Archivos en C++
Archivos en C++Archivos en C++
Archivos en C++
 
Progra
PrograProgra
Progra
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
Archivos.pdf
Archivos.pdfArchivos.pdf
Archivos.pdf
 
Manejo_de_archivos_C
Manejo_de_archivos_CManejo_de_archivos_C
Manejo_de_archivos_C
 
Funciones C (gnu/linux)
Funciones C (gnu/linux)Funciones C (gnu/linux)
Funciones C (gnu/linux)
 
Archivos
ArchivosArchivos
Archivos
 
PERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOSPERSISTENCIA BASADA EN ARCHIVOS
PERSISTENCIA BASADA EN ARCHIVOS
 
Archivos
ArchivosArchivos
Archivos
 

Mehr von Aldo Hernán Zanabria Gálvez

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...Aldo Hernán Zanabria Gálvez
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...Aldo Hernán Zanabria Gálvez
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoAldo Hernán Zanabria Gálvez
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesAldo Hernán Zanabria Gálvez
 

Mehr von Aldo Hernán Zanabria Gálvez (20)

“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
“PERSPECTIVAS DEL DESARROLLO ECONÓMICO REGIONAL EN EL CONTEXTO DEL CAMBIO CLI...
 
mejorando la web guia de html 5
mejorando la web guia de html 5mejorando la web guia de html 5
mejorando la web guia de html 5
 
Guía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdfGuía de Prácticas word beta.pdf
Guía de Prácticas word beta.pdf
 
emprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptxemprendimiento en la era del conocimiento.pptx
emprendimiento en la era del conocimiento.pptx
 
Fundamentos de Programación
Fundamentos de ProgramaciónFundamentos de Programación
Fundamentos de Programación
 
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...Organizadores visuales sobre las corrientes contemporaneas   aldo zanabria ga...
Organizadores visuales sobre las corrientes contemporaneas aldo zanabria ga...
 
didactica
didacticadidactica
didactica
 
Tarea1 aldo zanabria
Tarea1 aldo zanabriaTarea1 aldo zanabria
Tarea1 aldo zanabria
 
Tarea 2 aldo zanabria
Tarea 2 aldo zanabriaTarea 2 aldo zanabria
Tarea 2 aldo zanabria
 
Carolinos del milenio pasado - Puno
Carolinos del milenio pasado - PunoCarolinos del milenio pasado - Puno
Carolinos del milenio pasado - Puno
 
ingenieria de sistemas
ingenieria de sistemasingenieria de sistemas
ingenieria de sistemas
 
Electricidad con recursos renovables
Electricidad con recursos renovablesElectricidad con recursos renovables
Electricidad con recursos renovables
 
Variables
VariablesVariables
Variables
 
Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal Estructura y modelo organizacional estatal
Estructura y modelo organizacional estatal
 
Calidad de Agua
Calidad de AguaCalidad de Agua
Calidad de Agua
 
Resumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede TurismoResumen final - Seminario Taller TIC Emprede Turismo
Resumen final - Seminario Taller TIC Emprede Turismo
 
Clase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y ComunicacionesClase de Tecnologías de la Información y Comunicaciones
Clase de Tecnologías de la Información y Comunicaciones
 
Plan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la MujerPlan de Trabajo Integración de la Mujer
Plan de Trabajo Integración de la Mujer
 
peritaciones y tasación puno
peritaciones y tasación punoperitaciones y tasación puno
peritaciones y tasación puno
 
producción en la empresa turística
producción en la empresa turísticaproducción en la empresa turística
producción en la empresa turística
 

Ficheros cyc++

  • 1. Elementos de Programación Ficheros Elementos de Programaci ón. Ficheros. Curso 2002/2003 1 Índice 1. Introducción. Concepto de fichero 2. Generalidades sobre ficheros 3. Ficheros en C++ 4. Librerías de manejo de ficheros en C++ 5. Ficheros en C 6. Librerías de manejo de ficheros en C 7. Ejemplos Elementos de Programaci ón. Ficheros. Curso 2002/2003 2 1
  • 2. Concepto de fichero FAlmacenamiento PERMANENTE de información que reside en la memoria secundaria (disco). Son independientes de los programas que los utilizan. FCaracterísticas: ü Residen en la memoria secundaria à Tamaño no limitado por la memoria. ü Utilizados por programas distintos. ü Identificados por un nombre externo, dependiente del sistema operativo, y un nombre interno, dependiente del lenguaje de programación. ü Contienen secuencias de bytes. Elementos de Programaci ón. Ficheros. Curso 2002/2003 3 Generalidades sobre ficheros F Modo de acceso: ü Secuencial. Para acceder a un objeto se debe acceder a los objetos almacenados previamente en el fichero. ü Directo o Aleatorio. Se accede directamente al objeto, sin recorrer los anteriores . F Tipos de operación: ü Lectura o Entrada. ü Escritura o Salida. F Formato de las operaciones: ü E/S sin formato. Representación binaria de la información es igual en memoria y en disco. ü E/S con formato. Cambio en la representación a formatos legibles humanamente. Elementos de Programaci ón. Ficheros. Curso 2002/2003 4 2
  • 3. Otras consideraciones sobre ficheros FPunteros de los ficheros ü Los ficheros tienen asociados un puntero de lectura y otro de escritura que indican la posición donde se realizará la siguiente operación de E/S. ü En C los dos punteros son el mismo; en C++ hay uno para cada operación. FMarca de Fin de Fichero ü No existe una marca almacenada en el fichero que indique su fin. ü Para su detección hay que usar las funciones feof() o eof(). ü Para que las funciones anteriores detecten el final de fichero, debe leerse más allá del final de fichero. Elementos de Programaci ón. Ficheros. Curso 2002/2003 5 Ficheros en C++ F C++ proporciona tres clases: fstream, ifstream y ofstream. F Nombres internos de los ficheros (streams) à objetos de las clases anteriores. F Declaración de un objeto de uno de los tipos anteriores à establece un canal de comunicación entre un programa y un archivo almacenado en la memoria secundaria. ios istream ifstream iostream ostream fstream ofstream Elementos de Programaci ón. Ficheros. Curso 2002/2003 6 3
  • 4. Operaciones con ficheros en C++ F Apertura y creación de ficheros void fstream::open(const char *name, int modo) ü Abre el fichero “name” en el modo indicado. No retorna ningún valor. ios::app Abre fichero (si no existe lo crea), para escribir al final de él ios::ate Abre fichero (si no existe lo crea), para escribir en cualquier lugar ios::in Abre fichero para entrada ios::out Crea fichero para salida ios::trunc Descarta el contenido del fichero (si existe) ios::nocreate Si el fichero no existe, la operación de apertura falla ios::noreplace Si el fichero existe, la operación de apertura falla ios::binary Abre un fichero en modo binario Elementos de Programaci ón. Ficheros. Curso 2002/2003 7 Operaciones con ficheros en C++ F Lectura secuencial con formato fstream & operator >> (fstream &stream, tipo &var) ü Modifica var con el contenido leido de stream. La lectura termina al encontrar blanco, tabulador o salto de línea. ü Retorna una referencia a stream. F Escritura secuencial con formato fstream & operator << (fstream &stream, tipo &var) ü Modifica el fichero stream escribiendo en él el contenido de var. ü Retorna una referencia a stream. #include <fstream.h> …… int x = 10, y; ofstream f2; ifstream f3; …… f2 << “ Escribo al fichero datos2.dat: “ << x << endl; f2.open(“ datos2.dat ”); f3 >> y; // lectura del fichero “ datos3.dat ” un entero f3.open(“ datos3.dat ”); Elementos de Programaci ón. Ficheros. Curso 2002/2003 8 4
  • 5. Operaciones con ficheros en C++ F Lectura secuencial sin formato (binaria) istream & fstream::read (char * ptr, int size) ü Lee size bytes del fichero stream y los almacena en la dirección indicada por prt. ü Retorna una referencia a stream. F Escritura secuencial sin formato (binaria) ostream & fstream::write (const char * ptr, int size) ü Escribe size bytes al fichero stream desde la dirección indicada por ptr. ü Retorna una referencia a stream. #include <fstream.h> …… int x = 10, y; ofstream f2; ifstream f3; …… f2.write((const char*) &x, sizeof(int)); f2.open(“ datos2.dat ”, ios::binary); f3.read ((char *) & y, sizeof(int); f3.open(“ datos3.dat ”, ios::binary); Elementos de Programaci ón. Ficheros. Curso 2002/2003 9 Operaciones con ficheros en C++ F Cierre de ficheros fstream::close () ü Cierra el fichero y vacía todos los buffers asociados. ü No retorna ningún valor. F Detectar el fin de fichero int ios::eof () ü Indica si se han leído todos los datos del fichero. ü Retorna 0 si no llegó al final, distinto de 0 en caso contrario. F Bytes leidos con read() (lectura sin formato) int istream::gcount () ü Después de una operación de lectura binaria, indica cuántos bytes se han leído del fichero. ü Retorna el nú mero de bytes leídos de un stream. Elementos de Programaci ón. Ficheros. Curso 2002/2003 10 5
  • 6. Ficheros especiales en C++ FDefinidos en iostream.h Fcin: Objeto de la clase istream conectado a la entrada estándar (teclado). Fcout: Objeto de la clase ostream conectado a la salida estándar (pantalla). Fcerr: Objeto de la clase ostream conectado a la salida estándar de error (pantalla). Sin buffer. Fclog: Objeto de la clase ostream conectado a la salida estándar de error (pantalla). Con buffer. Elementos de Programaci ón. Ficheros. Curso 2002/2003 11 Acceso secuencial y aleatorio FLas operaciones de E/S provocan un desplazamiento de los punteros del fichero equivalente al número de bytes leídos/escritos El puntero queda apuntando al siguiente byte. FEn el acceso secuencial, los punteros no se desplazan si no es con operaciones de E/S. FEn el acceso aleatorio (o directo): ü Uso de los métodos seekg, seekp, tellg y tellp (fstream.h) Elementos de Programaci ón. Ficheros. Curso 2002/2003 12 6
  • 7. Acceso aleatorio con ficheros en C++ istream& flectura.seekg(streamoff offset, seek_dir dir); ü Desplaza el puntero de lectura del fichero flectura offset bytes desde la ubicación indicada por dir. Valores de dir apropiados son: – ios::beg desde el inicio de fichero. – ios::cur desde la posición actual del fichero. – ios::end desde el final de fichero. ü Retorna una referencia al fichero flectura. ostream& fescritura.seekp(streamoff offset, seek_dir dir); ü Igual que seekg, pero para el puntero de escritura. long flectura.tellg(); ü Retorna la posición actual (en bytes) del puntero de lectura del fichero flectura, contando desde el principio de fichero. long fescritura.tellp(); ü Igual que tellg, pero para el puntero de escritura. Elementos de Programaci ón. Ficheros. Curso 2002/2003 13 Acceso aleatorio con ficheros en C++ FFicheros de entrada: istream ü Definidos los métodos: tellg y seekg. FFicheros de salida: ostream ü Definidos los métodos: tellp y seekp. FFicheros de entrada/salida: fstream ü Presentan puntero de lectura y escritura à tienen definidos los cuatro métodos. ü Punteros de lectura y escritura se modifican simultáneamente al llamar a los dos métodos (seekg y seekp). Elementos de Programaci ón. Ficheros. Curso 2002/2003 14 7
  • 8. Ficheros en C FC proporciona el tipo FILE. FLos nombres internos de los ficheros (streams) son punteros al tipo. #include <stdio.h> // incluye el tipo y las operaciones con ficheros FILE *f; // declaración Elementos de Programaci ón. Ficheros. Curso 2002/2003 15 Operaciones con ficheros en C F Apertura y creación de ficheros FILE *fopen(const char *name, const char * modo) ü Abre el fichero “name” en el modo indicado. No retorna ningún valor. r Abre fichero para lectura al principio (entrada) w Abre fichero para escritura al principio (salida) a Abre fichero (si no existe lo crea), para escribir al final de él r+ Abre fichero existente para actualización (lectura o escritura) w+ Abre fichero, si existe lo sobreescribe, para actualización (lectura o escritura) a+ Abre fichero (si no existe lo crea), para actualización (lectura o escritura) t Abre fichero en modo texto b Abre fichero en modo binario Elementos de Programaci ón. Ficheros. Curso 2002/2003 16 8
  • 9. Operaciones con ficheros en C F Lectura secuencial con formato int fscanf(FILE * stream, const char *formato [, ptr,...]) ü Modifica el contenido de las direcciones de las variables ptr con los valores leídos de stream. ü Retorna el número de campos de entrada escaneados y almacenados en las variables respectivas. Si se lee más allá del final de fichero retorna EOF. F Escritura secuencial con formato int fprintf(FILE * stream, const char *formato [, arg,...]) ü Escribe en stream la información de arg en el formato indicado. ü Retorna el número de bytes escritos. En caso de error retorna EOF. F Formato d entero (int) ld entero largo (long) f real (float ) lf real largo (double) s string (char *, char[ ]) c carácter (char) Elementos de Programaci ón. Ficheros. Curso 2002/2003 17 Operaciones con ficheros en C F Lectura secuencial sin formato (binaria) size_t fread(void *ptr, size_t size , size_t n, FILE *stream) ü Lee n bloques de tamaño size del fichero stream sobre la dirección de memoria prt. ü Retorna el nú mero de bloques leídos. Si hay error, retorna un número menor que n. F Escritura secuencial sin formato (binaria) size_t fwrite(const void *ptr, size_t size, size_t n, FILE *stream) ü Escribe n bloques de tamaño size al fichero stream desde la dirección indicada por ptr. ü Retorna el nú mero de bloques leídos. Si hay error, retorna un número menor que n. Elementos de Programaci ón. Ficheros. Curso 2002/2003 18 9
  • 10. Operaciones con ficheros en C F Cierre de ficheros int fclose (FILE* stream) ü Cierra el fichero y vacía todos los buffers asociados. ü Retorna 0 en caso de éxito y EOF en caso de error. F Detectar el fin de fichero int feof (FILE *stream) ü Indica si se han leído todos los datos del fichero. ü Retorna 0 si no llegó al final, distinto de 0 en caso contrario. F Borrado de ficheros int remove (const char * name) ü Borra el fichero de nombre name del sistema de ficheros. ü Retorna 0 en caso de éxito y -1 en caso de error. Elementos de Programaci ón. Ficheros. Curso 2002/2003 19 Ficheros especiales en C F Definidos en stdio.h F stdin: Fichero conectado a la entrada estándar (teclado). F stdout: Fichero conectado a la salida estándar (pantalla). F stdcerr: Fichero conectado a la salida estándar de error (pantalla). Sin buffer. F Funciones de E/S asociadas a los ficheros especiales: – printf: igual que fprintf pero con stdout como parámetro por defecto para FILE *stream. – scanf: igual que fscanf pero con stdin como parámetro por defecto para FILE *stream. Elementos de Programaci ón. Ficheros. Curso 2002/2003 20 10
  • 11. Acceso aleatorio con ficheros en C ü Uso de las funciones rewind, fseek, ftell (stdio.h). void rewind(FILE *stream); ü Posiciona el puntero del fichero stream al principio. ü Retorna nada. int fseek(FILE * stream, long offset, int whence); ü Posiciona el puntero del fichero stream en offset bytes desde donde indique whence. Valores de whence: – 0 desde el inicio de fichero. – 1 desde la posición actual del fichero. – 2 desde el final de fichero. ü Retorna 0 si la operación tuvo éxito y cualquier otro valor en caso de error. long int ftell(FILE * stream); ü Retorna la posición actual (en bytes) del puntero del fichero stream contando desde el principio del fichero. En caso de error retorna. Elementos de Programaci ón. Ficheros. Curso 2002/2003 21 11