SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
Archivos y Bancos de Datos
Flujo de datos
   Es una abstracción del camino que siguen
    los datos desde alguna fuente (dispositivos
    de entrada o el programa) hasta un destino
    (el programa o dispositivos de salida)
    [Joyanes y Zahonero]
   A la fuente se le llama productor, al destino
    se le llama consumidor
   Esta abstracción es usada en varios
    lenguajes de programación, incluyendo el
    lenguaje C
Flujo de datos en C

           FILE *archivo // flujo de datos

                    Flujo de datos




20/02/12          Programación avanzada y métodos numéricos   3
Flujos abiertos por defecto en stdio.h
FILE *stdin // entrada desde el teclado
FILE *stdout // salida hacia la pantalla
FILE *stderr // salida hacia la pantalla, usado
para mensajes de error


fprintf(stdout,“Dame un numero: ”); // sale
por stdout
fscanf(stdin,“%d”,&x); // Llega desde stdin
20/02/12     Programación avanzada y métodos numéricos   4
Abrir y cerrar archivo
FILE* arch = fopen(“credito.txt”,”r”);
if(arch == NULL) { // Manejo del error
  printf(“Hubo un error al abrir el
programan”);
     return 0;
}
fclose(arch); // Cierra el archivo
20/02/12         Programación avanzada y métodos numéricos   5
char arch1[20];

printf(“Dame el nombre del archivo: ”);
scanf(“%s”,arch1);

// Introducimos la dirección donde se
guarda la cadena con el nombre
FILE *ap_arch = fopen(arch1,”a”);

// después de manipular el archivo
fclose(ap_arch);
20/02/12   Programación avanzada y métodos numéricos   6
Modos de abrir un archivo
       “r”            Abre en modo lectura un archivo
               Crea archivo para escribir o lo sobreescribe si
      “w”
                                 ya existe
       “a”      Abre para añadir datos al final del archivo
                    Abre para leer y escribir un archivo,
      “r+”
                        manteniendo su contenido
                   Crea archivo para escribir y leer o lo
     “w+”
                              sobreescribe
      “a+”      Abre para escribir y leer al final del archivo
                 Al agregar b, se abre el archivo en modo
      “b”
                      binario (“rb”, “ab”, “w+b”, “a+b”)
20/02/12         Programación avanzada y métodos numéricos       7

                       De texto: los datos
                      están guardados en
 Tipos de             cadenas de texto, el
                      acceso es secuencial
 archivos             
                       Binarios: los datos están
                      guardados en bits, el
                      acceso es directo



20/02/12    Programación avanzada y métodos numéricos   8
Escritura y lectura de texto
fprintf(flujo, cadena del formato,
variables);
fscanf(flujo, cadena del formato,
direcciones de memoria de las
variables);
 Cada que se lee o escribe, el apuntador
  del flujo se recorre varias posiciones

20/02/12        Programación avanzada y métodos numéricos   9
Acceso secuencial a archivo de texto
feof(flujo) // Devuelve verdadero si
llegó al final del flujo
rewind(flujo) // Devuelve el
apuntador a la posición inicial del
archivo



20/02/12   Programación avanzada y métodos numéricos   10
Acceso secuencial a archivo de texto
int numero;
FILE *archivo = fopen(“datos.txt”,”r+”);
// Mientras archivo no apunte a EOF, seguirá el ciclo
while ( !feof(archivo) ) {
    fscanf(archivo,“%i”,&numero);
    printf(“Numero leido: %d”, numero);
    fprintf(archivo, “%d”, 0);
}
rewind(archivo); // devuelve a la posición inicial del flujo

20/02/12           Programación avanzada y métodos numéricos   11
Escritura y lectura de datos binarios en
                archivos
fwrite(dirección del buffer, tamaño del tipo
de dato, número de elementos, flujo);
fread(dirección del buffer, tamaño del tipo de
dato, numero de elementos, flujo);


También desplazan el apuntador del archivo
tantas posiciones como sean escritas o leídas


20/02/12     Programación avanzada y métodos numéricos   12
Acceso directo a archivo binario
fseek(flujo, desplazamiento en
bytes, origen);

Origen:
 SEEK_SET (inicio del archivo)


 SEEK_CUR (posición actual)


 SEEK_END (final del archivo)

20/02/12      Programación avanzada y métodos numéricos   13
Acceso directo a archivo binario

FILE *flujo1 = fopen(“a.dat”,”w+b”);
int x[45];

// Desplazamiento y lectura
fseek(flujo1,30,SEEK_SET);
fread(x,sizeof(int),45,flujo1);

// Desplazamiento y escritura
fseek(flujo1,40*sizeof(float),SEEK_CUR);
fwrite(x,sizeof(int),45,flujo1);
20/02/12      Programación avanzada y métodos numéricos   14
Consideraciones para elaborar un
                 archivo
1) Cada línea de texto representará un
  registro, en caso de que sea binario, definir
  una estructura registro
2) En caso de que sea texto, especificar un
  formato de texto para cada registro, el cual
  será usado para escribir y leer
3) Es recomendable añadir un número o
  clave de identificación al inicio de cada
  registro para facilitar la búsqueda

20/02/12     Programación avanzada y métodos numéricos   15
Ejemplo
/* Formato de registro: entero, espacio, cadena,
espacio, cadena, espacio, flotante */
FILE *arch1, *arch2; // asuma que están abiertos
int cuenta; float balance;
char nombre[20], apellido[20];
fprintf(arch, “%d %s %s %0.2f”, cuenta, nombre,
apellido, balance);
fscanf(arch, “%d %s %s-%lf”, &cuenta, nombre,
apellido, &balance);

20/02/12       Programación avanzada y métodos numéricos   16
Ejemplo
struct registro {
   int cuenta; float balance;
   char nombre[20], apellido[20];
} aux;
FILE *arch1, *arch2; // asuma que están
abiertos
fread(&aux, sizeof(struct registro), 1, arch1);
fwrite(&aux, sizeof(struct registro), 1, arch2);
20/02/12      Programación avanzada y métodos numéricos   17
Bibliografía

    Luis Joyanes e Ignacio Zahonero.
    Programación en C, C++, Java y UML. Ed.
    McGraw Hill Latinoamericana.

    Harvey Deitel y Paul Deitel, Como
    programar en C. Ed. Prentice Hall.




20/02/12      Programación avanzada y métodos numéricos   18

Más contenido relacionado

La actualidad más candente

Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de LagrangeKike Prieto
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
examen inf-164
examen inf-164examen inf-164
examen inf-164tecmac
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflapAnel Sosa
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en CAbraham
 
Error en el polinomio de interpolación
Error en el polinomio de interpolaciónError en el polinomio de interpolación
Error en el polinomio de interpolaciónKike Prieto
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
Tema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellTema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellJosé A. Alonso
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Sarai Gotopo
 
Método de romberg
Método de rombergMétodo de romberg
Método de rombergTensor
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)Rodrigo GC
 
Representación matricial
Representación matricialRepresentación matricial
Representación matricialSam Rdgz
 
Soluciones de sistema de ecuaciones en Matlab
Soluciones de sistema de ecuaciones en MatlabSoluciones de sistema de ecuaciones en Matlab
Soluciones de sistema de ecuaciones en MatlabHugo Piure
 

La actualidad más candente (20)

Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de Lagrange
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
examen inf-164
examen inf-164examen inf-164
examen inf-164
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
maquinas de turing jflap
maquinas de turing jflapmaquinas de turing jflap
maquinas de turing jflap
 
Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Serie Fibonacci en C
Serie Fibonacci en CSerie Fibonacci en C
Serie Fibonacci en C
 
Error en el polinomio de interpolación
Error en el polinomio de interpolaciónError en el polinomio de interpolación
Error en el polinomio de interpolación
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Tema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellTema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en Haskell
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Lenguaje Lisp
Lenguaje LispLenguaje Lisp
Lenguaje Lisp
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)Método de Ordenamiento Directa (Burbuja)
Método de Ordenamiento Directa (Burbuja)
 
Método de romberg
Método de rombergMétodo de romberg
Método de romberg
 
Autómata de pila (AP)
Autómata de pila (AP)Autómata de pila (AP)
Autómata de pila (AP)
 
Representación matricial
Representación matricialRepresentación matricial
Representación matricial
 
Soluciones de sistema de ecuaciones en Matlab
Soluciones de sistema de ecuaciones en MatlabSoluciones de sistema de ecuaciones en Matlab
Soluciones de sistema de ecuaciones en Matlab
 

Similar a Manejo de archivos en el lenguaje C (20)

Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
2-Archivos.ppt
2-Archivos.ppt2-Archivos.ppt
2-Archivos.ppt
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Archivos
ArchivosArchivos
Archivos
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Grupo nro4ficheros
Grupo nro4ficherosGrupo nro4ficheros
Grupo nro4ficheros
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Archivos en C++
Archivos en C++Archivos en C++
Archivos en C++
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
Fichc
FichcFichc
Fichc
 
Archivo de datos
Archivo de datosArchivo de datos
Archivo de datos
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
11 archivos guia numero 4
11 archivos guia numero 411 archivos guia numero 4
11 archivos guia numero 4
 
Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 

Último

UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxMaria Jimena Leon Malharro
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfcarolinamartinezsev
 
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdfPaulaAnglicaBustaman
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...rosalindatellodelagu
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdfInformacionesCMI
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfAndreaTurell
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfSofiaArias58
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoWilian24
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxLorenaHualpachoque
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 

Último (20)

UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docxUNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
UNIDAD DIDACTICA nivel inicial EL SUPERMERCADO.docx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdfFICHA CUENTO BUSCANDO UNA MAMÁ  2024 MAESTRA JANET.pdf
FICHA CUENTO BUSCANDO UNA MAMÁ 2024 MAESTRA JANET.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
UNIDAD DE APRENDIZAJE DE PRIMER GRADO DEL MES DE MAYO PARA TRABAJAR CON ESTUD...
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdfREGLAMENTO  FINAL DE EVALUACIÓN 2024 pdf.pdf
REGLAMENTO FINAL DE EVALUACIÓN 2024 pdf.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdfinforme-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
informe-de-laboratorio-metodos-de-separacion-de-mezclas.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
animalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdfanimalesdelaproincia de beunos aires.pdf
animalesdelaproincia de beunos aires.pdf
 
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto gradoUNIDAD 3 -MAYO - IV CICLO para cuarto grado
UNIDAD 3 -MAYO - IV CICLO para cuarto grado
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docxMINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
MINEDU BASES JUEGOS ESCOLARES DEPORTIVOS PARADEPORTIVOS 2024.docx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 

Manejo de archivos en el lenguaje C

  • 1. Archivos y Bancos de Datos
  • 2. Flujo de datos  Es una abstracción del camino que siguen los datos desde alguna fuente (dispositivos de entrada o el programa) hasta un destino (el programa o dispositivos de salida) [Joyanes y Zahonero]  A la fuente se le llama productor, al destino se le llama consumidor  Esta abstracción es usada en varios lenguajes de programación, incluyendo el lenguaje C
  • 3. Flujo de datos en C FILE *archivo // flujo de datos Flujo de datos 20/02/12 Programación avanzada y métodos numéricos 3
  • 4. Flujos abiertos por defecto en stdio.h FILE *stdin // entrada desde el teclado FILE *stdout // salida hacia la pantalla FILE *stderr // salida hacia la pantalla, usado para mensajes de error fprintf(stdout,“Dame un numero: ”); // sale por stdout fscanf(stdin,“%d”,&x); // Llega desde stdin 20/02/12 Programación avanzada y métodos numéricos 4
  • 5. Abrir y cerrar archivo FILE* arch = fopen(“credito.txt”,”r”); if(arch == NULL) { // Manejo del error printf(“Hubo un error al abrir el programan”); return 0; } fclose(arch); // Cierra el archivo 20/02/12 Programación avanzada y métodos numéricos 5
  • 6. char arch1[20]; printf(“Dame el nombre del archivo: ”); scanf(“%s”,arch1); // Introducimos la dirección donde se guarda la cadena con el nombre FILE *ap_arch = fopen(arch1,”a”); // después de manipular el archivo fclose(ap_arch); 20/02/12 Programación avanzada y métodos numéricos 6
  • 7. Modos de abrir un archivo “r” Abre en modo lectura un archivo Crea archivo para escribir o lo sobreescribe si “w” ya existe “a” Abre para añadir datos al final del archivo Abre para leer y escribir un archivo, “r+” manteniendo su contenido Crea archivo para escribir y leer o lo “w+” sobreescribe “a+” Abre para escribir y leer al final del archivo Al agregar b, se abre el archivo en modo “b” binario (“rb”, “ab”, “w+b”, “a+b”) 20/02/12 Programación avanzada y métodos numéricos 7
  • 8. De texto: los datos están guardados en Tipos de cadenas de texto, el acceso es secuencial archivos  Binarios: los datos están guardados en bits, el acceso es directo 20/02/12 Programación avanzada y métodos numéricos 8
  • 9. Escritura y lectura de texto fprintf(flujo, cadena del formato, variables); fscanf(flujo, cadena del formato, direcciones de memoria de las variables); Cada que se lee o escribe, el apuntador del flujo se recorre varias posiciones 20/02/12 Programación avanzada y métodos numéricos 9
  • 10. Acceso secuencial a archivo de texto feof(flujo) // Devuelve verdadero si llegó al final del flujo rewind(flujo) // Devuelve el apuntador a la posición inicial del archivo 20/02/12 Programación avanzada y métodos numéricos 10
  • 11. Acceso secuencial a archivo de texto int numero; FILE *archivo = fopen(“datos.txt”,”r+”); // Mientras archivo no apunte a EOF, seguirá el ciclo while ( !feof(archivo) ) { fscanf(archivo,“%i”,&numero); printf(“Numero leido: %d”, numero); fprintf(archivo, “%d”, 0); } rewind(archivo); // devuelve a la posición inicial del flujo 20/02/12 Programación avanzada y métodos numéricos 11
  • 12. Escritura y lectura de datos binarios en archivos fwrite(dirección del buffer, tamaño del tipo de dato, número de elementos, flujo); fread(dirección del buffer, tamaño del tipo de dato, numero de elementos, flujo); También desplazan el apuntador del archivo tantas posiciones como sean escritas o leídas 20/02/12 Programación avanzada y métodos numéricos 12
  • 13. Acceso directo a archivo binario fseek(flujo, desplazamiento en bytes, origen); Origen:  SEEK_SET (inicio del archivo)  SEEK_CUR (posición actual)  SEEK_END (final del archivo) 20/02/12 Programación avanzada y métodos numéricos 13
  • 14. Acceso directo a archivo binario FILE *flujo1 = fopen(“a.dat”,”w+b”); int x[45]; // Desplazamiento y lectura fseek(flujo1,30,SEEK_SET); fread(x,sizeof(int),45,flujo1); // Desplazamiento y escritura fseek(flujo1,40*sizeof(float),SEEK_CUR); fwrite(x,sizeof(int),45,flujo1); 20/02/12 Programación avanzada y métodos numéricos 14
  • 15. Consideraciones para elaborar un archivo 1) Cada línea de texto representará un registro, en caso de que sea binario, definir una estructura registro 2) En caso de que sea texto, especificar un formato de texto para cada registro, el cual será usado para escribir y leer 3) Es recomendable añadir un número o clave de identificación al inicio de cada registro para facilitar la búsqueda 20/02/12 Programación avanzada y métodos numéricos 15
  • 16. Ejemplo /* Formato de registro: entero, espacio, cadena, espacio, cadena, espacio, flotante */ FILE *arch1, *arch2; // asuma que están abiertos int cuenta; float balance; char nombre[20], apellido[20]; fprintf(arch, “%d %s %s %0.2f”, cuenta, nombre, apellido, balance); fscanf(arch, “%d %s %s-%lf”, &cuenta, nombre, apellido, &balance); 20/02/12 Programación avanzada y métodos numéricos 16
  • 17. Ejemplo struct registro { int cuenta; float balance; char nombre[20], apellido[20]; } aux; FILE *arch1, *arch2; // asuma que están abiertos fread(&aux, sizeof(struct registro), 1, arch1); fwrite(&aux, sizeof(struct registro), 1, arch2); 20/02/12 Programación avanzada y métodos numéricos 17
  • 18. Bibliografía  Luis Joyanes e Ignacio Zahonero. Programación en C, C++, Java y UML. Ed. McGraw Hill Latinoamericana.  Harvey Deitel y Paul Deitel, Como programar en C. Ed. Prentice Hall. 20/02/12 Programación avanzada y métodos numéricos 18