SlideShare ist ein Scribd-Unternehmen logo
1 von 24
UPNFM-PREUFOD
Método File En Pascal
Archivos de
                            Texto




                                                 Archivo de
Tipo Puntero
                                                    Tipo

                        El Tipo
                         FILE

             Tipo
                                       Tipo Simple
         Estructurado
Sintaxis

TYPE
       tfichero = FILE OF Tipo_de_Datos;
       tficheroTexto = TEXT;
VAR
       nom_fich1 : FILE OF Tipo_de_Datos:
       nom_fich2 : TEXT;
Operación de Asignación de un Archivo


En Turbo Pascal esta operación se realiza mediante un procedimiento
predefinido llamado ASSIGN (Asignar); la sintaxis de este procedimiento es:

ASSIGN (Fich_Logico, Nombre_archivos_fisico);

• Fich_Logico: Es una variable de tipo archivo.

• Nombre _Archivo: Se trata de cadena de caracteres (o de tipo STRING) que representa el
Nombre del archivo físico, o el lugar donde este se encuentra.
Archivos Como Parámetros


El caso de arrays y registro, una función no puede devolver ningún tipo de datos estructurados,
por lo que en el caso de los archivos tampoco es posible.

Este hecho se debe a que los contenidos de un archivo no se puede copiar en otro utilizando
Una instrucción de la forma:
Variable_archivo 1:= variable_archivo 2;
Sintaxis
A continuación se muestran algunos ejemplos de paso de parámetro de tipo fichero:
TYPE
   Tipo_mes= (enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre,
   octubre, noviembre, diciembre);
   Fich_meses = FILE OF Tipo_mes;
   Fich_letras = FILE OF Char;
   Fich_numeros = FILE OF real;
VAR
    Fmeses : Fich_meses;
    Libro1, Libro2 : Fich_numeros;
    Fdatos, Festadisticas : Fich_numeros;
    logica : boolean;
PROCEDURE uno (VAR f1 : Fich_meses; VAR f2, f3 : Fich_letras);
….
FUNCTION dos (VAR f1 : Fich_letras; VAR f2 : Fich_numeros): boolean;
….
BEGIN
   uno (Fmeses, Libro1, Libro2);
   logica : = dos (Libros1, Fdatos);
   logica : = dos (Libros2, Festadisticas);
END.
Archivos de Texto

TYPE
  Tfich_texto1 = FILE OF char;
   Tfich_texto2 = TEXT;
VAR
   nom_fich1 : Tfich_texto1;
   nom_fich2 : Tfich_texto2;
   nom_fich3 :TEXT;

Caso particular de los archivos de texto:
1.- Declarar y asignar el archivo de texto (físico).
2. - Abrir el archivo.
3.- Leer/Escribir los datos sobre el archivo.
4.- Cerrar el archivo.
Declaración y asignación de archivos
              de texto
 TYPE
   Fich_texto = TEXT;
   Fich_caracteres = FILE OF char;
 VAR
    flineas : Fich_texto;
    fletras : Fich_caracteres;
 BEGIN
    (asignación del fichero de texto)
    assign (flineas, ‘fichero_ejermplo1.txt’);

   (asignación del fichero de caracteres)
   assign (fletras, ‘fichero_ejemplo2.txt’);
   ……
 END.
Apertura de archivos de texto


                      REWRITE




             APPEND



                           RESET
Lectura/Escritura de datos en archivos
               de texto

 Lectura en archivo de texto: para poder leer los elemento de
 un archivo es necesario haberlo abierto previamente mediante
 una operación de RESET. Existe dos procedimiento que nos
 permiten realizar la operación de lectura:



 READ(Archivo_logico, x1,x2,x3,…….,xn);
 READLN(archivo_logico x1,x2,x3,…..,xn);
Sintaxis

Var
      fichero: TEXT;
       w, x, y, z : char;
….
Begin
   assign(fichero, ‘c:mifichero.txt’
   reset(fichero); {se abre para lectura}
   read(fichero, w, x, y); {se leen tres caracteres seguidos}
   read(fichero, z); {se lee un caracter}
   writeln(w, x, y, z); {se muestran por pantalla}
   close(fichero); {Se cierra el fichero}
End.
Escritura En Archivos De Texto
                  Sintaxis


Para poder escribir datos en un archivo de texto es necesario haberlo abierto
Previamentecon cualquiera de los dos procedimientos predefinidos de Pascal:

•REWRITE
•APPEND

Una vez abierto el archivo, se pueden escribirse datos (caracteres o cadenas de
Caracteres) empleando los procedimientos:

WRITE(fich_logico, E1, E2, …, En);
WRITELN(fich_logico, E1, E2, …,En);
Operación De Cierre En Archivos De
              Texto

Si no se desea perder todo los datos de un archivo, una vez terminadas las diferentes
Operaciones sobre el, es necesario cerrarlo. La operación de cierre de un fichero situa
un carácter especial en el lugar donde se encuentra situado el puntero de Lectura/Escritura
El carácter EOF (End Of File, o fin del fichero) es utilizado para identificar el final del mismo.

Close(arch_logico);
Otras Operaciones Con Archivos De Texto




                    EOLN   EOF
   Sintaxis:
   EOLN(Archivo_Logico);
   EOF(Archivo_Logico);
Archivos Con Tipo Binarios


  Sintaxis:
  TYPE
      tFichero_binario = FILE OF tipo_base;
  VAR
       nom_fiche1 : tFichero_binario;
       nom_fiche2 : FILE OF tipo_base;
Operaciones Con Archivos Binarios

  Declaración y Asignación del
  Archivo


     Apertura Del Archivo Binario


         Lectura/Escritura en Archivos
         Binarios

            Operación de Cierre en un
            archivo Binario
Declaración y Asignación del Archivo


 Estas operaciones se realizan exactamente igual que para los archivos de texto:

 TYPE
        fBinario1 = FILE OF integer;
        fBinario2 = FILE OF boolean;
 VAR
    F1 : fbinario1;
    F2 : fbinario2;
 BEGIN
      {Asignacion del fichero de enteros}
      assign(F1,’Fichero_ejemplo1.dat’);
      {Asignacion del fichero de Booleanos}
      assign(F2,’Fichero_ejemplo2.dat’);
      ……..
 END.
Apertura Del Archivo Binario

                        RESET
                   (Archivo_logico)




         APPEND                       REWRITE
     (Archivo_Logico)            (Archivo_Logico)
Lectura/Escritura En Archivos Binarios

                  Lectura de
                    Datos




        READLN/                Escritura de
        WRITELN                   Datos
Operación De Cierre En Un Archivo
              Binario

La operación de cerrado del archivo se realiza exactamente igual que en
el caso de los archivos de texto. Realizar esta operación es igualmente
importante si no se desea perder los datos almacenados en el archivo
binario. La sintaxis es:

CLOSE(archivo_logico);
Otras Operaciones Con Archivos
             Binarios

Operaciones De Control


   Operaciones De Acceso
   Directo

      Operaciones Para La Gestión
      De Archivos Con Tipo
Operaciones De Control


Estas operaciones proporcionan información sobre la posición donde se encuentra
El puntero de lectura/escritura. Existe una funcion de control basica que puede
utilizarse:

•EOF (archivo_logico): esta funcion booleana devuelve verdadero si el puntero de
lectura/escritura se encuentra situado sobre el carácter fin de fichero (EOF).
•EOLN(archivo_logico): al igual que sucede con las funciones predefinidas READLN y
WRITELN, esta funcion no tiene sentido en archivos con tipo, y por lo tanto no
existe para este tipo de datos.
Operaciones De Acceso Directo



          FilePos   FileSize



                Seek
Operaciones Para La Gestión De Archivos Con
                   Tipo



                   RENAME



         TRUNCATE            ERASE

Weitere ähnliche Inhalte

Was ist angesagt?

Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
Whaleejaa Wha
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
Omarzingm
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
pedreror1
 

Was ist angesagt? (20)

Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
Archivos secuenciales en PYTHON
Archivos secuenciales en PYTHONArchivos secuenciales en PYTHON
Archivos secuenciales en PYTHON
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
Tablas hash en java
Tablas hash en javaTablas hash en java
Tablas hash en java
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
 
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en JavaProgramación 3: Vector, stack, enumearator, iterator, listiterator en Java
Programación 3: Vector, stack, enumearator, iterator, listiterator en Java
 
Aplicaciones lineales
Aplicaciones linealesAplicaciones lineales
Aplicaciones lineales
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Algoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMPAlgoritmo de Knuth-Morris-Pratt - KMP
Algoritmo de Knuth-Morris-Pratt - KMP
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Componentes en-poo
Componentes en-pooComponentes en-poo
Componentes en-poo
 
Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)Capítulo 18 (Técnicas de control de la concurrencia)
Capítulo 18 (Técnicas de control de la concurrencia)
 
04.Entradas y salidas digitales
04.Entradas y salidas digitales04.Entradas y salidas digitales
04.Entradas y salidas digitales
 
Matrices pseint
Matrices   pseintMatrices   pseint
Matrices pseint
 
Call ensamblador 3
Call ensamblador  3Call ensamblador  3
Call ensamblador 3
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Detección de errores CRC
Detección de errores CRCDetección de errores CRC
Detección de errores CRC
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 

Ähnlich wie Metodo File Pascal

Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
taniarodri
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
leonard1994
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
lichic
 
Utp pti_s11_archivos
 Utp pti_s11_archivos Utp pti_s11_archivos
Utp pti_s11_archivos
c09271
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
mauro0210
 

Ähnlich wie Metodo File Pascal (20)

Archivos C++
Archivos C++Archivos C++
Archivos C++
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
 
Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 
Fichc
FichcFichc
Fichc
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
 
Utp pti_s11_archivos
 Utp pti_s11_archivos Utp pti_s11_archivos
Utp pti_s11_archivos
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Jyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientesJyoc java-cap14 persistencia. ficheros corrientes
Jyoc java-cap14 persistencia. ficheros corrientes
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Acceso a datos
Acceso a datosAcceso a datos
Acceso a datos
 
Ficheros
FicherosFicheros
Ficheros
 
LENGUAJE C++
LENGUAJE C++LENGUAJE C++
LENGUAJE C++
 
Ficheros Php
Ficheros PhpFicheros Php
Ficheros Php
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Kürzlich hochgeladen (11)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Metodo File Pascal

  • 2. Archivos de Texto Archivo de Tipo Puntero Tipo El Tipo FILE Tipo Tipo Simple Estructurado
  • 3. Sintaxis TYPE tfichero = FILE OF Tipo_de_Datos; tficheroTexto = TEXT; VAR nom_fich1 : FILE OF Tipo_de_Datos: nom_fich2 : TEXT;
  • 4. Operación de Asignación de un Archivo En Turbo Pascal esta operación se realiza mediante un procedimiento predefinido llamado ASSIGN (Asignar); la sintaxis de este procedimiento es: ASSIGN (Fich_Logico, Nombre_archivos_fisico); • Fich_Logico: Es una variable de tipo archivo. • Nombre _Archivo: Se trata de cadena de caracteres (o de tipo STRING) que representa el Nombre del archivo físico, o el lugar donde este se encuentra.
  • 5. Archivos Como Parámetros El caso de arrays y registro, una función no puede devolver ningún tipo de datos estructurados, por lo que en el caso de los archivos tampoco es posible. Este hecho se debe a que los contenidos de un archivo no se puede copiar en otro utilizando Una instrucción de la forma: Variable_archivo 1:= variable_archivo 2;
  • 6. Sintaxis A continuación se muestran algunos ejemplos de paso de parámetro de tipo fichero: TYPE Tipo_mes= (enero, febrero, marzo, abril, mayo, junio, julio, agosto, septiembre, octubre, noviembre, diciembre); Fich_meses = FILE OF Tipo_mes; Fich_letras = FILE OF Char; Fich_numeros = FILE OF real; VAR Fmeses : Fich_meses; Libro1, Libro2 : Fich_numeros; Fdatos, Festadisticas : Fich_numeros; logica : boolean; PROCEDURE uno (VAR f1 : Fich_meses; VAR f2, f3 : Fich_letras); …. FUNCTION dos (VAR f1 : Fich_letras; VAR f2 : Fich_numeros): boolean; …. BEGIN uno (Fmeses, Libro1, Libro2); logica : = dos (Libros1, Fdatos); logica : = dos (Libros2, Festadisticas); END.
  • 7. Archivos de Texto TYPE Tfich_texto1 = FILE OF char; Tfich_texto2 = TEXT; VAR nom_fich1 : Tfich_texto1; nom_fich2 : Tfich_texto2; nom_fich3 :TEXT; Caso particular de los archivos de texto: 1.- Declarar y asignar el archivo de texto (físico). 2. - Abrir el archivo. 3.- Leer/Escribir los datos sobre el archivo. 4.- Cerrar el archivo.
  • 8. Declaración y asignación de archivos de texto TYPE Fich_texto = TEXT; Fich_caracteres = FILE OF char; VAR flineas : Fich_texto; fletras : Fich_caracteres; BEGIN (asignación del fichero de texto) assign (flineas, ‘fichero_ejermplo1.txt’); (asignación del fichero de caracteres) assign (fletras, ‘fichero_ejemplo2.txt’); …… END.
  • 9. Apertura de archivos de texto REWRITE APPEND RESET
  • 10. Lectura/Escritura de datos en archivos de texto Lectura en archivo de texto: para poder leer los elemento de un archivo es necesario haberlo abierto previamente mediante una operación de RESET. Existe dos procedimiento que nos permiten realizar la operación de lectura: READ(Archivo_logico, x1,x2,x3,…….,xn); READLN(archivo_logico x1,x2,x3,…..,xn);
  • 11. Sintaxis Var fichero: TEXT; w, x, y, z : char; …. Begin assign(fichero, ‘c:mifichero.txt’ reset(fichero); {se abre para lectura} read(fichero, w, x, y); {se leen tres caracteres seguidos} read(fichero, z); {se lee un caracter} writeln(w, x, y, z); {se muestran por pantalla} close(fichero); {Se cierra el fichero} End.
  • 12. Escritura En Archivos De Texto Sintaxis Para poder escribir datos en un archivo de texto es necesario haberlo abierto Previamentecon cualquiera de los dos procedimientos predefinidos de Pascal: •REWRITE •APPEND Una vez abierto el archivo, se pueden escribirse datos (caracteres o cadenas de Caracteres) empleando los procedimientos: WRITE(fich_logico, E1, E2, …, En); WRITELN(fich_logico, E1, E2, …,En);
  • 13. Operación De Cierre En Archivos De Texto Si no se desea perder todo los datos de un archivo, una vez terminadas las diferentes Operaciones sobre el, es necesario cerrarlo. La operación de cierre de un fichero situa un carácter especial en el lugar donde se encuentra situado el puntero de Lectura/Escritura El carácter EOF (End Of File, o fin del fichero) es utilizado para identificar el final del mismo. Close(arch_logico);
  • 14. Otras Operaciones Con Archivos De Texto EOLN EOF Sintaxis: EOLN(Archivo_Logico); EOF(Archivo_Logico);
  • 15. Archivos Con Tipo Binarios Sintaxis: TYPE tFichero_binario = FILE OF tipo_base; VAR nom_fiche1 : tFichero_binario; nom_fiche2 : FILE OF tipo_base;
  • 16. Operaciones Con Archivos Binarios Declaración y Asignación del Archivo Apertura Del Archivo Binario Lectura/Escritura en Archivos Binarios Operación de Cierre en un archivo Binario
  • 17. Declaración y Asignación del Archivo Estas operaciones se realizan exactamente igual que para los archivos de texto: TYPE fBinario1 = FILE OF integer; fBinario2 = FILE OF boolean; VAR F1 : fbinario1; F2 : fbinario2; BEGIN {Asignacion del fichero de enteros} assign(F1,’Fichero_ejemplo1.dat’); {Asignacion del fichero de Booleanos} assign(F2,’Fichero_ejemplo2.dat’); …….. END.
  • 18. Apertura Del Archivo Binario RESET (Archivo_logico) APPEND REWRITE (Archivo_Logico) (Archivo_Logico)
  • 19. Lectura/Escritura En Archivos Binarios Lectura de Datos READLN/ Escritura de WRITELN Datos
  • 20. Operación De Cierre En Un Archivo Binario La operación de cerrado del archivo se realiza exactamente igual que en el caso de los archivos de texto. Realizar esta operación es igualmente importante si no se desea perder los datos almacenados en el archivo binario. La sintaxis es: CLOSE(archivo_logico);
  • 21. Otras Operaciones Con Archivos Binarios Operaciones De Control Operaciones De Acceso Directo Operaciones Para La Gestión De Archivos Con Tipo
  • 22. Operaciones De Control Estas operaciones proporcionan información sobre la posición donde se encuentra El puntero de lectura/escritura. Existe una funcion de control basica que puede utilizarse: •EOF (archivo_logico): esta funcion booleana devuelve verdadero si el puntero de lectura/escritura se encuentra situado sobre el carácter fin de fichero (EOF). •EOLN(archivo_logico): al igual que sucede con las funciones predefinidas READLN y WRITELN, esta funcion no tiene sentido en archivos con tipo, y por lo tanto no existe para este tipo de datos.
  • 23. Operaciones De Acceso Directo FilePos FileSize Seek
  • 24. Operaciones Para La Gestión De Archivos Con Tipo RENAME TRUNCATE ERASE

Hinweis der Redaktion

  1. Archivos de Texto: Los Archivos de texto que Pascal almacena caracteres ASCIIArchivos Con Tipo: los archivos de texto en pascal son archivos de tipo binario que almacenan elementos de un tipo predefinido (simple, estructurado o definido por el usuario). Los tipos permitidos para crear archivos con tipo de Pascal son:Simple: Cualquiera de los tipos simples predefinido en pascr (integer, booleam, real, char, etc.), o los definidos por el usuario (subrangos o enumerados), pueden ser utilizados para construir un archivo.Estructurado: pueden utilizarse los tipos ARRAY, Record, String o Set para construirse archivos que almacenen archivos (File of File).Puntero: Pascal permite construir ficheros que almacenen datos de tipo puntero.El tipo File es el tipo predefinido en pascal, que permite la implementacion y gestion de archivos. Dado que puede hablarse de dos grandes tipos de archivos en Pascal (de Texto y con tipo).
  2. Donde Nombre es un identificador valido en pascal, que es utilizado como referencia lógica, y que permite acceder a la información almacenada en el archivo físico, las palabras reservadas FILE y OF permite declarar el tipo de datos que son almacenados en el archivo físico; por lo tanto, este tipo de declaración se utilizara para definir ficheros binarios. La segunda declaración utiliza la palabra reservada TEXT, que se emplea para crear ficheros de texto.Pueden crearse archivos de cualquier tipo definible en pascal excepto de tipo fichero.
  3. Un archivo de texto es una estructura de datos que permite almacenar caracteres alfanuméricos en un codificación estándar en memoria (secundaria o principal). En Turbo Pascal la codificación estándar utilizada es ASCII. Es posible declarar de texto de dos formas diferentes.
  4. Ambas operaciones han sido estudiadas en los apartados anteriores. Una vez declarado el fichero lógico en la sección de declaración de tipos, o en la sección de declaración de variables, se utilizara la sentencia ASSIGN para establecer la relación entre ese fichero lógico y el fichero físico que se desea manipular.
  5. RESET: Archivo _lógico esta operación abre el archivo físico (que corresponde al nombre lógico que le ha sido previamente asignado) y sitúa el puntero de lectura/escritura en la primera posición del archivo en modo LECTURA.REWRITE: (Archivo Lógico) la operación rewrite abre el archivo y sitúa el puntero en la posición inicial del mismo . En modo LECTURA/ESCRITURAAPPEND: (Archivo_logico) cuando se dispone de un archivo de texto y se desea añadir nuevos datos (sin borrar los ya almacenados), debe utilizarse la operación append esta operación abre el archivo y sitúa el puntero de lectura/escritura al final del mismo
  6. Ambos procedimientos tienen un funcionamiento diferente. Si se utiliza READ, se lee de la posición actual del puntero de lectura/escritura un carácter (que puede almacenarse sobre una variable del tipo char o cadena), y se mueve el puntero a la siguiente posición del archivo. Si se utiliza el procedimiento READLN(Fichero X) se lee el conjunto de caracteres desde la pocision que ocupa el puntero, hasta que este encuentra el carácter fin de linea (EOLN), y se almacena sobre la variable de salida si es de tipo STRING se devuelve la cadena; si es de tipo char se devuelve el primer carácter leido y se pasa por alto el resto de la cadena). La funcion READLN situara el puntero de lectura/escritura inmediatamente a continuacion del carácter fin de linea. Por lo tanto debe recordarse que:READ: Lee un carácter y situa el puntero despues del ultimo carácter leido. Deben utilizar se variables de tipo char para almacenar los caracteres leidos.READLN: lee desde la posicion en la que se encuentra el puntero hasta EOLN. Deben utilizarse variables de tipo STRING.
  7. Archivo_logicorepesenta el identidicador de tipo archivo que debe haber sido previamente asignado a un archivo fisico que existia. Al igual que secuedia con los procedimientos de lectura, los procedimientos de escritura tienen un comportamiento ligeramente distinto. El procedimiento WRITE escribe los paramentos que se le pasan en el archivo y deja el puntero despues del ultimo elemento escrito. Sin embargo, cuando se utiliza WRITELN introduce un carácter de final de linea (EOLN) despues del ultiumoparametro introducido. De esta forma, WRITELN situa al puntero de lectura/escritura al comienzo de la linea siguiente.
  8. Pascal proporciona dos funciones especialmenteutiles para trabajar con archivos de texto, para funciones permiten conocer al programador si el puntero de lectura/escritura que recorre el archivo ha llegado al final de una linea (es decir, si esta sobre el carácter especial eoln), o si ha llegado al final del fichero (eof). La sintaxis de estas funciones esEOLN(archivo_logico);EOF(Archivo_logico);Ambas funciones devuelve un valor logico en funcion de que el puntero de lectura/escritura cumpla, o no, la condicion correspondiente:EOLN(fichero): devuelve el TRUE si el puntero ha llegado al final de la linea.EOF(Fichero): devuelve TRUE si el puntero ha llegado al final del archivo.
  9. El otro tipo de archivos utilizables en pascal son los archivos con tipo o archivos binarios. Un archivo con tipo es una estructura de datos que permite almacenar datos del mismo tipo; es decir, al igual que los arrays, los archivos binarios permiten almacenar conjuntos de datos homogeneos. La sintaxis para declarar archivos binarios es:TYPEtFichero_binario = FILE OF tipo_base;VAR nom_fiche1 : tFichero_binario; nom_fiche2 : FILE OF tipo_base;
  10. Se pueden utilizar únicamente dos de las operaciones vistas para el caso de los archivos de textoRESET(archivo_logico): esta operación abre el archivo físico y sitúa el puntero en la primera posición del archivo en modo LECTURA/ESCRITURA. Esta operación, al igual que en el caso de los archivos de texto, genera un error si al intentar abrir el fichero este no existe.REWRITE(archivo_logico): la operación rewrite abre el archivo y sitúa el puntero en la posición inicial del mismo, en modo LECTURA/ESCRITURA. Al igual que sucedió con los archivos de texto, si el archivo físico asignado no existe crea uno nuevo vacio; si el fichero existe lo sobrescribe, por lo que sus datos serán borrados y el archivo aparecerá vacio.APPEND(archivo_logico): esta operación no esta disponible para los archivos con tipo, por lo tanto, si intenta utilizarse provocara un error(tipo de fichero incorrecto).Si se desea implementar la operación APPEND en archivos binarios, será necesario utilizar RESET, situar el puntero de lectura/escritura al final de fichero y comenzar a añadir datos desde esa posicion.
  11. Lectura de Datos: se utiliza el procedimiento predefinido READ con la sintaxis vista en el caso de los archivos de texto: READ(archivo_logico,X1,X2,….,Xm), donde Xi son variables del mismo tipo, o compatible, que el archivo lógico declarado.Escritura de Datos: en este caso se utilizara el procedimiento predefinido WRITE, con la sintaxis: WRITE(archivo_logico,E1,E2,….,En), donde Ei son expresiones del mismo tipo (o compatibles) que el declarado en archivo_logico.READLN/WRITELN: estos dos procedimiento NO están definidos para archivos con tipo, esto es lógico si se piensa que ambos procedimientos están pensados para trabajar sobre el concepto de línea, es decir, para leer (READLN) un conjunto de caracteres hasta llegar al carácter especial fin de la línea (eoln), o para escribir o mostrar (WRITELN) un conjunto de caracteres hasta el fin de línea. En los archivos binarios el concepto de fin de línea no tiene sentido dado que no se almacena texto en los archivos, por lo tanto estas dos funciones carece de sentido.
  12. Las operaciones y funciones de acceso directo permiten acceder a cualquier elemento de un archivo en funcion de su posicion. Es decir, este tipo de funciones permiten implementar el acceso directo o aleatorio en los archivos con tipo. Este acceso, que no es posible en los archivos de texto, sera realizable en los binarios gracias a las siguientes funciones:Seek(archivo_logico): esta funcionsitua el puntero de lectura/escritura en una “posición” especifica. El parametro “posicion ” debe ser de tipo LONGINT. Esto es debido a que el tamaño de un fichero puede ser muy grande. Si se utiliza un parametro de tipo integer se producirá un error si el fichero tiene mas de MAXINT(32767) elementos. La posicion del primer elemento de cualquier fichero ocupa la posicion 0.FileSize(archivo_logico): esta funcion devuelve un valor entero que corresponde al numero de elementos que posee el archivo.FilePos(archivo_logico): esta funcion devuelve un valor entero que indica la posición actual del puntero de lectura/escritura en el archivo que se le ha pasado como parametro.
  13. Esta operaciones permiten realizar diversas operaciones sobre los archivos fisicos almacenados en la memoria. De esta forma podra cambiarse el nombre de un archivo, o borrarse desde el programa si esto fuese necesario. Las funciones predefinidas de Turbo Pascal para la gestión de archivos fisicos son:RENAME(arch_logico, nuevo_nombre_arch_fisico): este procedimiento permite modificar el nombre del archivo fisico desde un programa. Para poder utilizar esta operación, el archivo logico debe estar CERRADO. La operación implementada por esta funcion es equivalente a ejecutar el comando rename, o ren(en MsDOS), o rn (Lunix), contra el sistema operativo.ERASE(arch_logico) este procedimiento borra el archivo fisico asociado al archivo logico. Por lo tanto, equivale a ejecutar comandos como del(MSDOS), o rm(Lunix), en sus correspondientes sistemas operativos.TRUNCATE(arch_logico) este procedimiento coloca el carácter EOF en la posicion actual del puntero de lectura/escritura. Por lo tanto, el archivo queda cortado(truncado) en esa posicion; de esta forma los elementos que estuviesen situados a continuacon se pierden.