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 p>
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'); p> 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).