Los documentos a los que se refiere Pascal se denominan documentos internos. La característica de los archivos internos es que la entidad del archivo (archivo real) también se almacena en la memoria externa y pasa a formar parte del archivo externo. Sin embargo, al usarlo, se deben usar ciertas declaraciones en el programa para vincularlo con el archivo real para establecer una correspondencia uno a uno. El archivo real debe operarse con el nombre lógico del archivo interno. Los nombres lógicos de los archivos internos deben cumplir con las reglas de nomenclatura de los identificadores del lenguaje PASCAL.
Los archivos en Pascal se utilizan principalmente para almacenar grandes cantidades de datos. Por ejemplo: en la gestión del rendimiento, hay una gran cantidad de datos sin procesar, primero los archivos se almacenan en el disco y luego los datos del archivo se leen y procesan a través de programas. Esto es más conveniente y efectivo que no usar archivos.
Un archivo en Pascal se define como una secuencia lineal de elementos del mismo tipo. Los elementos del archivo están organizados en un orden determinado y se puede acceder a cada elemento de principio a fin. Por definición, los archivos son similares a las matrices, pero existen diferencias obvias entre ellos, principalmente las siguientes:
(1) Cada elemento del archivo se almacena en orden en un dispositivo de archivo externo (como un disco ). Por lo tanto, los archivos pueden generarse mediante programas Pascal o software de edición de texto, como edit, ws, el comando de edición de Turbo Pascal, etc. Antes de que el programa se ejecute, o que el programa lo genere durante la ejecución, todavía se almacena en el dispositivo externo después de la ejecución.
(2) En el sistema, el acceso a los archivos se gestiona a través de punteros de archivos. El puntero de archivo es una calculadora que registra la posición del programa en el archivo. En un momento determinado, el programa sólo puede leer o escribir un elemento en el archivo. Después de escribir o leer un elemento en un archivo, el puntero del archivo correspondiente se mueve a la siguiente posición del elemento. Se accede a las matrices mediante subíndices.
(3) En la definición del tipo de archivo, no es necesario especificar la longitud del archivo, es decir, el número de elementos, lo que significa que los datos de los elementos pueden cambiar dinámicamente. El archivo puede ser muy grande, contener muchos elementos o puede ser un archivo vacío sin ningún elemento. El número de elementos de la matriz es fijo.
El uso de archivos generalmente implica los siguientes pasos;
(1) Explicar el tipo de archivo y definir el identificador del archivo
(2) Crear un archivo interno y; un archivo externo
(3) Abrir el archivo
(4) Manipular el archivo
(5) Cerrar el archivo;
Turbo Pascal divide los archivos en tres categorías: archivos de texto (secuenciales), archivos escritos (secuenciales o aleatorios) y archivos sin escribir (secuenciales o aleatorios). Estos archivos y sus operaciones se describen a continuación.
En primer lugar, los archivos de texto
Los archivos de texto, también conocidos como archivos de texto o archivos de texto, pueden ser leídos directamente por humanos y son uno de los formularios de datos básicos para la interacción humano-computadora. comunicación. Los archivos de texto se pueden crear, leer y modificar directamente mediante programas de edición de texto (como los comandos de edición de DOS o Turbo PASCAL), o pueden ser creados por el programa PASCAL durante la operación.
1. Definición de archivo de texto:
El archivo de texto es texto, compuesto de caracteres ASCII, y es uno de los archivos estándar proporcionados por Pascal. La descripción de Pascal del texto de archivo estándar es la siguiente:
TIPO DE TEXTO = caracteres del archivo
Por lo tanto, el texto es como los tipos estándar INTEGER, READ, etc. , se puede utilizar directamente para la descripción de variables sin explicación del usuario. Por ejemplo:
VAR F1, F2: TEXT;
Aquí se definen dos variables de archivo de texto F1 y F2.
2. Creación de archivos de texto
Hay dos formas de crear archivos de texto:
(1) Utilice la edición Turbo Pascal para crear directamente archivos de datos originales.
El ejemplo 1 almacena los datos de la siguiente tabla en un archivo llamado A.dat
3 4
29 30 50 60
80 90 70 75
60 50 70 45
Pasos de operación:
①Ingrese el estado de edición de Turbo Pascal;
② Ingrese el datos;
③Guardar, el nombre del archivo es A.dat
En este momento, los datos se han almacenado en el archivo de texto A.dat. El archivo de texto también se puede editar. Editar en DOS, etc. Construcción de software.
(2) Crear datos intermedios o archivos de datos de resultados a través de programas.
Los pasos para que el programa cree archivos son los siguientes:
(1) Definir variables de archivos de texto
(2) Asignar nombres de archivos externos al texto; variables de archivo para asociar el archivo de texto con el archivo externo correspondiente;
Formato de comando: ASSIGN(f, nombre)
f es la variable del archivo de texto definida.
Nombre es el nombre real del archivo.
Por ejemplo: asignar (f1, 'archivo in.dat `)
O: asignar (f1, 'pas\archivo in.res `)
De esta manera, la operación de la variable del archivo de texto F1 en el programa es también la operación del archivo real externo FILEIN. En el ejemplo anterior, el archivo FILEIN. "DAT" se almacena en el directorio actual en lugar del archivo. "RES" se guarda en el subdirectorio PAS.
③Abra el archivo de texto y prepárese para escribir;
Formato de comando 1: Reescribir (f)
Función: Crea y abre un nuevo archivo para escribir. Si existe un archivo con el mismo nombre, elimínelo y vuelva a crearlo.
Formato de comando 2: Agregar (f)
Función: Abre un archivo existente y añádelo.
④Escribir archivo;
Formato de comando: WRITE(f,)
O: WRITELN(f,)
Función: El proyecto El contenido se escribe en el archivo f.
(5) Una vez completada la operación del archivo, ciérrelo.
Formato de comando: cerrar (f)
El ejemplo 2 lee los datos de la Tabla 12.1 desde el teclado y los escribe en un archivo llamado B.dat usando un programa.
3. Leer archivos de texto
Pasos de operación para leer el contenido de archivos de texto:
(1) Definir variables de archivos de texto;
②Utilice el comando ASSIGN(f, nombre) para vincular el archivo interno f con el nombre de archivo real;
③Abra el archivo de texto para leer;
Formato del comando: READ(f, ; )READLN(f, lt lista de variables>;)
Función: leer los datos señalados por el puntero en el archivo F en una variable.
Los archivos de texto proporcionan dos comandos adicionales que son muy útiles en la manipulación de texto. Ellos son:
Adiós a Terminator
EOF(f): eco del carácter de final de archivo
⑤Después de completar la operación del archivo, use el cierre ( f) comando Cerrar el archivo.
El Ejemplo 3 lee el archivo de texto creado en el Ejemplo 12.1 y lo genera.
Debido a que los archivos de texto se almacenan en código ASCII, es muy conveniente ver el contenido de los archivos de texto. En el estado DOS, puede usar TYPE y otros comandos en DOS. En Turbo Pascal, puede ver el archivo como un programa.
4. Características de los archivos de texto
(1) Estructura de líneas
Los archivos de texto constan de varias líneas, separadas por marcas de final de línea y al final de el archivo tiene una etiqueta de cierre. Dado que la longitud de cada línea puede ser diferente, la posición exacta de una línea determinada en el archivo de texto no se puede calcular, por lo que el archivo de texto solo se puede procesar secuencialmente y un archivo de texto no se puede ingresar y generar al mismo tiempo.
(2) Función de conversión automática
Cada elemento del archivo de texto es de tipo carácter, pero cuando el elemento del archivo se lee en una variable (entero, número real o tipo cadena) , Pascal Se convierte automáticamente al mismo tipo de datos que la variable. Por el contrario, cuando una variable se escribe en un archivo de texto, también se convierte automáticamente al tipo de carácter.
El ejemplo 4 tiene 65.438 00 personas en un grupo de estudio. Hicieron un examen, evaluaron seis materias, contaron la puntuación total de cada persona y la puntuación media de cada materia, y colocaron los datos originales y los resultados en un archivo de texto.
Análisis
(1) Archivo de datos original TESTIN. Utilice el editor Turbo Pascal para crear DAT y almacenarlo en el disco. El contenido es el siguiente:
10 6
1 78 89 67 90 98 67
2 90 93 86 84 86 93
3 93 85 78 89 78 98
4 67 89 76 67 98 74
5 83 75 92 78 89 74
6 76 57 89 84 73 71
7 81 93 74 76 78 86
8 68 83 91 83 78 89
9 63 71 83 94 78 95
10 78 99 90 80 86 70
(2) El programa lee el archivo de datos original y encuentra el puntaje total de cada persona y el puntaje promedio de cada materia
(3) Crea un; archivo llamado TEXTIN Archivo de datos de resultados. Resolución.
Procedimiento:
El ejemplo 5 lee un archivo de texto de longitud variable. Composición tipográfica: cree un archivo con una longitud fija de 60 caracteres. Requisitos de composición tipográfica: (1) Cuando el final de una línea no es una palabra completa, reemplace la posición del último carácter de la línea con '-', es decir, forma una palabra completa con el encabezado de la siguiente línea (2) La primera línea El encabezado tiene dos espacios y los encabezados de otras filas no contienen espacios.
Análisis
(1) Crear archivos de datos originales.
(2) El programa lee el contenido del archivo de datos original mientras lo escribe.
(3) Cada línea tiene 60 caracteres, cumple con las condiciones de composición tipográfica de la pregunta y la escribe en el archivo de destino.
Establecer una copia de texto de los datos originales. El archivo DAT es el siguiente:
Pavel fue arrestado.
La madre no encendió fuego.
Se acerca la noche y sopla el viento frío.
Alguien llamó a la ventana.
Luego otro.
Mi madre estaba acostumbrada a ese tipo de palizas, pero esta vez empezó a sentirse un poco feliz.
Se puso el pañuelo y abrió la puerta.
Programa:
Ejecutar un programa sobre una copia del texto. Archivo de texto DAT para obtener el archivo de resultados de composición TEXTCOPY. El contenido de RES es el siguiente:
Pavel fue arrestado. La madre no encendió la estufa -
Llegó la noche y sopló un viento frío. Hubo un golpe en la puerta
en la ventana. Luego otro. Mi madre está acostumbrada a tocar la puerta así, p-
Pero esta vez empezó a sentirse un poco feliz. Tirando el chal
Se giró y abrió la puerta.
En segundo lugar, hay muchos tipos de archivos
Todos los elementos de un archivo de texto son caracteres de fuente. Para almacenar datos mixtos en un archivo, debe utilizar archivos mecanografiados.
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 caracteres, porque son esencialmente archivos de texto) no se pueden almacenar. leídos y procesados mediante software de edición como archivos de texto.
El formato de descripción del tipo de un archivo escrito es:
Identificador de tipo == tipo básico de archivo
El tipo básico puede ser distinto del tipo de archivo; Cualquier tipo. Por ejemplo:
FILE 1 =archivo entero;
FILE2 =archivo de matriz de cadenas [1 - 10];
FILE3 =archivo de conjunto de caracteres;
FILE2 = archivo de matriz de cadenas [1 - 10];
FILE3 = archivo de conjunto de caracteres;
p>FILE4 = archivo real
Archivo5; = archivo de registro;
Nombre: cadena;
Curso: READ array[1 -10]
Sol: Lectura
Fin;
Y así sucesivamente, donde la suma de las matrices, conjuntos en el archivo 2, archivo 3 y archivo 5, se puede describir el tipo de registro antes de definir la variable del archivo.
Por ejemplo:
Empresa de reventa de valor añadido
f 1: ARCHIVO
F2, F3: archivo 3
p>
F4: Archivo 5;
Como todas las descripciones de tipos y definiciones de variables anteriores, las descripciones de tipos de archivos y las definiciones de variables también se pueden combinar, por ejemplo:
Valor agregado Empresa revendedora
F1: archivo de números enteros;
F2, F3: archivo de conjunto de caracteres;
F4: archivo de registro
Nombre: cadena ;
Lección: Matrices de Números Reales [1-10];
Suma: Lectura
Fin
Turbo Pascal; se sumará secuencialmente Acceso aleatorio a archivos escritos.
Para acceder aleatoriamente a archivos escritos, Turbo Pascal proporciona el siguiente comando:
Formato de comando 1: buscar (f, n)
Función: mover el puntero actual Muévase al enésimo componente del archivo F especificado, donde F es un archivo que no es de texto y N es un número entero largo.
Formato de comando 2: filepos (f)
Función: Devuelve el puntero del archivo actual, que se devuelve cuando el puntero del archivo actual está al principio del archivo. Los valores de la función son números enteros largos.
Formato de comando 3: Tamaño de archivo (f)
Función: Devuelve la longitud del archivo. Si el archivo está vacío, se devuelve cero y el valor de la función es un número entero largo.
2. Crear archivos escritos
Los archivos escritos solo pueden ser creados por programas. Los pasos de operación son similares a los archivos de texto, pero la diferencia es: (1) La definición de archivos escritos. es diferente al de los archivos de texto. Diferente (2) Utilice el comando SEEK para especificar un puntero para escribir archivos escritos aleatoriamente.
3. Acceder a archivos escritos
Los pasos para acceder a archivos escritos son similares a los de acceder a archivos de texto, pero la diferencia es: (1) La definición de archivos escritos es diferente de el de los archivos de texto; (2) Los archivos mecanografiados pueden utilizar el comando BUSCAR para acceder a cualquier registro y a cualquier elemento del registro.
Ejemplo 6: cree un archivo de mecanografía con el orden de los nombres de varios estudiantes, el número de asiento y las calificaciones totales de seis cursos.
Análisis: Para simplificar, supongamos que hay un archivo de texto FILEDATA.
TXT, el contenido es el siguiente:
10
Li Hong
1 89 67 56 98 76 45
Wang Ming p>
2 99 87 98 96 95 84
Zhang Yihong
3 78 69 68 69 91 81
Chang Hong
4 81 93 82 93 75 76
Lin Xing
5 78 65 90 79 89 90
Luo Ze
6 96 85 76 68 69 91
Lin Jinjin
7 86 81 72 74 95 96
Wang Zheng
8 92 84 78 89 75 97
Mao Ling
9 84 86 92 86 69 89
Cheng Yi
10 86 94 81 94 86 87
Primero El número 10 significa que hay 10 estudiantes, seguido por el nombre del primer estudiante, el número de asiento, seis grados, luego el segundo estudiante, y así sucesivamente.
Lea los datos del archivo de texto, averigüe la puntuación total de cada persona y cree un archivo mecanografiado con el nombre filedata.fil y el tipo de archivo registro studreco, como se muestra en el siguiente ejemplo.
Programa:
En el ejemplo 7, las tablas cuadradas, cúbicas y cuárticas generadas de los números del 1 al 16 se almacenan en un archivo escrito, al que se accede una vez de manera secuencial, para Acceda aleatoriamente a los dos números 11 y 15 y sus correspondientes valores cuadrados, cúbicos y cuárticos en el archivo.
Análisis: El nombre del archivo escrito es BIAO. FIL, y el tipo de archivo es real.
(1) Genera los números del 1 al 16 y sus valores cuadrados, cúbicos y cuárticos y escríbelos en la tabla. FIL y lea la salida secuencialmente;
(2) Utilice el puntero SEEK para señalar las posiciones de los archivos numerados 11 y 15, las posiciones son 10×4 y 14×4 respectivamente (tenga en cuenta la primera posición del archivo es 0), se generan el valor leído y los valores cuadrados, cúbicos y cuartos correspondientes.
Programa:
Los resultados de ejecutar el programa son los siguientes:
Además, Turbo Pascal también proporciona una tercera forma de archivo, es decir, un archivo sin escribir. Los archivos sin tipo son canales de E/S de bajo nivel. Si no consideramos la interpretación lógica de secuencias de bytes en discos como archivos mecanografiados y archivos de texto, el almacenamiento físico de datos no es más que algunas secuencias de bytes. Esto corresponde a la unidad física de memoria uno a uno. Los archivos sin tipo utilizan 128 bytes consecutivos como registros (o componentes) de operaciones de entrada y salida. Los datos se transfieren directamente entre archivos de disco y variables, lo que guarda el área de mitigación de archivos. Por lo tanto, ocupa menos memoria que otros archivos y se usa principalmente para uso directo. acceso a un archivo de disco de cualquier elemento de longitud fija.
Las operaciones específicas de archivos sin escribir no se presentan aquí. Consulte los libros relevantes.
Tercer análisis de ejemplo completo
El ejemplo 8 establece una lista de adyacencia de viaje de ida y vuelta para aeronaves urbanas. Archivo de texto CIUDAD. DAT contiene el siguiente contenido:
Los dos números n y v en la primera línea;
n representa el número de ciudades que se pueden visitar y n es un número positivo <100 ;
V representa el número de vuelos directos que se enumeran a continuación, V es un número positivo < 100;
Las siguientes n líneas son los nombres de las ciudades que se pueden visitar en avión ;
La siguiente línea V tiene dos ciudades en cada línea, separadas por un espacio, lo que indica que hay vuelos directos a las dos ciudades.
Por ejemplo, CIUDAD1 CIUDAD2 significa volar de CIUDAD1 a CIUDAD2 o de CIUDAD2 a CIUDAD1.
Generar archivo ciudad. RES, una lista de adyacencia N × N compuesta de 0 y 1.
La lista de adyacencia se define como:
Análisis
(1) Los N nombres de ciudades leídos del archivo de texto city.dat se almacenan en una matriz CT
(2) Lea los nombres de las ciudades de los vuelos de conexión en la línea V, encuentre las posiciones L y K de las dos ciudades en CT para cada línea y establezca una relación de adyacencia, donde lj[l,k ]=1, LJ [K, J]= 1;
(3) Escriba la lista de adyacencia generada en el archivo de texto CITY.RES.
Deja el contenido de la ciudad. Los datos son los siguientes:
10 20
Fuzhou
Beijing
Obligado... a hacer... (Shanghai) ) Shanghái
Wuhan
Hong Kong
Tianjin
Shen Yan
Templo Nanchan
Changsa
Guangzhou
Fuzhou Beijing
Fuzhou Shanghai
Fuzhou Guangzhou
Beijing Shanghai
Guangzhou Beijin
Wuhan Fuzhou
Shanghai Guangzhou
Hong Kong Beijing
Fuzhou Hong Kong
Nanchuan Beijin
p>Nanchan Tianjin
Tianjin Beijin
Shanghai chansa
Guangzhou Wuhan
chansa beijin
Wuhan Beijin
Shen Yan Beijin
Shen Yan Tianjin
Shanghai Shen Yan
Guangzhou Shen Yan
Programa:
Obtén el contenido de la ciudad. Los archivos RES son los siguientes:
10
1 Fuzhou
2 Beijing
3 Shanghai
4 Wuhan
p>5 Hong Kong
6 Tianjin
7 Shen Yan
8 Nanchan
9 chansa
10Guangzhou
0 1 1 1 1 0 0 0 0 1
1 0 1 1 1 1 1 1 1 1
1 1 0 0 0 0 1 0 1 1
1 1 0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 1 0 0
0 1 1 0 0 1 0 0 0 1
0 1 0 0 0 1 0 0 0 0
0 1 1 0 0 0 0 0 0 0
1 1 1 1 0 0 1 0 0 0
Ejemplo 9 Contenido de la fecha del archivo. Los archivos FIL del ejemplo 12.3 están ordenados por puntuación total.
Análisis:
La clasificación de archivos consiste en organizar los componentes de los archivos de texto de acuerdo con ciertos requisitos para que los archivos estén ordenados. Hay dos tipos de clasificación de archivos: clasificación interna y clasificación externa. La clasificación interna implica almacenar los componentes de un archivo en una matriz, luego permutar la matriz y finalmente almacenar la matriz en el archivo original. La disposición externa es diferente de la disposición interna. En lugar de almacenar los componentes del archivo en una matriz, ordena los archivos directamente. La clasificación interna es más rápida que la clasificación externa, pero cuando el archivo es grande, no se puede mover a la memoria. En este momento, es más apropiado utilizar clasificación externa.
Este programa utiliza el proceso SEEK para implementar la clasificación externa.
Programa:
Preguntas de ejercicio
1. Escribe un programa para contar el número de marcadores de final de línea en un archivo de texto.
2. Calcula la longitud de línea promedio, máxima y mínima de los archivos de texto.
3. Archivos y archivos de texto. DAT almacena las puntuaciones de n estudiantes en una determinada materia, las convierte en un histograma y las almacena en FILE.RES.
Por ejemplo, el contenido de un archivo.
La fecha es:
五
78 90 87 73 84
El contenido del archivo de histograma. RES son los siguientes:
五
********
************
* ********
************
*********
4. El archivo de la cuenta bancaria contiene detalles de la cuenta para cada cuenta: número de cuenta, nombre, dirección y saldo. Escriba un programa para leer las cuentas de cada cuenta y generar archivos de cuentas bancarias.
5. El contenido de cada registro en el archivo de la libreta de direcciones es: nombre, dirección, empresa, código postal y número de teléfono. Un programa está programado para crear un archivo de libreta de direcciones en orden de nombres, lo que requiere que el archivo primero se cree y luego se ordene externamente en orden de nombres.