Red de conocimiento informático - Aprendizaje de programación - funciones de tipo de archivo pascal

funciones de tipo de archivo pascal

Categoría: Computadora/Red >> Programación >> Otros lenguajes de programación

Descripción del problema:

¿Cuáles son las funciones del tipo de archivo pascal?

Análisis:

1. Definición de archivos mecanografiados

Los elementos de los archivos mecanografiados se pueden mezclar y almacenar en formato binario, por lo que los archivos mecanografiados (excepto los archivos de tipo carácter , porque son esencialmente archivos de texto) no se pueden leer ni procesar mediante software de edición, etc., como archivos de texto.

El formato de la descripción del tipo de un archivo escrito es:

Identificador de tipo = Archivo de tipo base

El tipo base puede ser distinto del archivo; tipo Cualquier tipo. Por ejemplo:

archivo1=archivo de número entero;

archivo2=archivo de matriz[1..10] de cadena;

archivo3=archivo de conjunto de char ;

archivo4=archivo de real;

archivo5=archivo de registro;

nombre:cadena;

curso:matriz[ 1 ..10] de real;

suma:real;

fin;

etc., donde las matrices en archivo2, archivo3, archivo5, ** *, registros y otros tipos se pueden explicar primero y luego definir las variables del archivo.

Por ejemplo:

var

f1:archivo1;

f2,f3:archivo3;

f4 : file5;

Como todas las declaraciones de tipos y definiciones de variables anteriores, las declaraciones de tipos de archivos y las definiciones de variables también se pueden combinar entre sí, por ejemplo:

var

f1 : archivo de número entero;

f2,f3:archivo de conjunto de caracteres;

archivo4=archivo de registro;

nombre:cadena;

curso:matriz[1..10] de real;

suma:real;

fin;

El acceso de Free Pascal a archivos mecanografiados es Se puede realizar de forma secuencial o aleatoria.

2. Creación de archivos escritos

La creación de archivos escritos sólo se puede realizar a través de programas. Los pasos son similares a los de la creación de archivos de texto mediante programación. Las diferencias son: (1) La definición de archivos escritos es diferente de la de archivos de texto (2) Los archivos escritos se pueden escribir aleatoriamente usando el puntero especificado por el comando de búsqueda.

3. Acceso a archivos escritos

Los pasos de operación para acceder a archivos escritos son similares a los del acceso del programa a archivos de texto. Las diferencias son: (1) Definición de archivos escritos Diferente. de la definición de archivos de texto; (2) Los archivos escritos pueden usar el comando de búsqueda para acceder a cualquier registro en el registro del archivo y a cualquier elemento del registro.

Los pasos para escribir archivos mecanografiados son:

asignar(f,str);

reescribir(f);

escribir( f,var table);

close(f);

Los pasos para leer archivos escritos son:

asignar(f,str) ;

reset(f);

read(f,var table);

close(f);

4. Análisis de preguntas de ejemplo

Ejemplo 11.5 Hay un archivo de números enteros f. Ahora se requiere multiplicar los números pares por 2 y restar 1 de los números impares para formar un archivo de números pares.

Análisis: Hay dos métodos, uno es generar un archivo par adicional g y el otro es guardar el archivo par generado en el archivo original f. Los métodos se detallan a continuación.

programa exp11_5_1(entrada,salida); { generar un archivo de números pares g }

var f,g : archivo de número entero

x:integer;

comenzar

asignar(f,'input.txt');

asignar(g,'output.txt');

reset(f);

rewrite(g);

mientras no sea eof(f)

comience

read(f). , x);

si es impar(x) entonces x:=x-1

si no x:=x+x;

escribe(g,x ) ;

fin;

cerrar(f) ;cerrar(g);

fin.

programa exp11_5_2(entrada,salida ) ; {Aún guarda el archivo par generado en el archivo original f}

var f: file of integer

x, i: integer

comenzar

asignar(f,'input.txt');

reset(f);

i:=1; }

mientras no sea eof(f) do

comenzar

read(f,x); {puntero del sistema como puntero de lectura}

si es impar(x) entonces x:=x-1

else x:=x+x;

seek(f,i); posición}

escribir(f,x);

i:=i+1

fin

cerrar(f) ;

p>

end.

Ejemplo 11.6 Supongamos que hay dos archivos enteros t1 y t2 que han sido ordenados (de pequeño a grande). Programe para fusionar t1 y. t2 en un archivo t, para que la fusión Los archivos finales también estén ordenados (de pequeño a grande).

programa exp11_6(entrada,salida);

tipo intfile = archivo de número entero

var t1,t2,t:intfile; p> procedimiento paixu(var f,g,h:intfile);

var m,x,y:integer;

comenzar

reset(f) ;reset(g) ;rewrite(h) ;

m:=0; { m es la bandera inicial}

while (ni eof(f) ni eof(g) ) hacer

comenzar

si m=0 entonces comenzar read(f,x read(g,y) > si x

si no, comenzar a escribir(h,y); >

fin;

mientras no sea eof(f) comience read(f,x); escriba(h,x)

mientras no sea eof(g) comenzar leer(g,y); escribir(h,y); finalizar;

cerrar(f); cerrar(h);

finalizar;

cerrar(f); cerrar(g); cerrar(h); p>

comenzar { principal }

asignar(t1,'input1.txt');

asignar(t2,'input2.txt');

asignar(t, 'salida.txt');

paixu(t1,t2,t);

fin.

Nota: Se utilizan archivos de tipo Cuando abro el script o el comando TYPE, todo es un galimatías (código binario).