Работа с файлами PASCAL
Понятие файл Физический файл – это именованная область внешней памяти, содержащая информацию. Логический файл – это структура данных, используемая в программах. Структура логического файла– это способ восприятия файла в программе
Файловый тип данных Типизированные файлы – FILE OF … Логическая структура файла Массив Любое количество элементов, оно может изменятся, нумерация с 0 В конце файла eof Фиксированное количество элементов, массив находится в оперативной памяти Текстовые файлы – TEXT Нетипизированные файлы – FILE Текущий указатель EOF
Объявление файлов VAR F1:File of integer; F2: TEXT; F3:File; T: FILE OF string[20]; x: file of real;
Операции над файлами 1.Операции по установке связи между файловой переменной и физическим внешним устройством: ASSIGN (Имя файловой переменной, имя внешнего файла); установка связи Пример ASSIGN (F1, C:\direct\tfile.dat); RESET (Имя файловой переменной); открытие файла Пример RESET (F1); REWRITE (Имя файловой переменной); Создание нового файла, связанного с F1 CLOSE (Имя файловой переменной); закрытиее файла APPEND FLUSH
Операции над файлами 2.Операции по обмену данными между файловой переменной и физическим внешним устройством: READ (F1,x1,x2,x3); READLN (F1,x1,x2,x3); WRITE (F1,x1,x2,x3); WRITELN (F1,x1,x2,x3);
Операции над файлами 3.Операции перемещения по файлу SEEK (имя файловой переменной, порядковый номер элемента); TRUNCATE (имя файловой переменной, порядковый номер элемента);
Создайте файл из 20 последовательных чисел, начиная с числа 41. Выведите файл на экран. Дайте компоненту с номером 15 новое значение 99, снова выведите файл на экран и затем его уничтожьте Uses crt; Var i:integer; F: file of integer; begin Assign (F,d1.txt); rewrite (F); Write (начальный файл); For I:=41 to 60 do Begin Write (F,i); Write (i, ); end; close (F);
Создайте файл из 20 последовательных чисел, начиная с числа 41. Выведите файл на экран. Дайте компоненту с номером 15 новое значение 99, снова выведите файл на экран и затем его уничтожьте Reset (F); Writeln (измененный файл); Seek (F,15); i:=99; write (F,i) Seek (F,0); While not eof (F) do Begin Read (F,i); Write (F,i); Write (i, ); end; close (F); Erase (F) End.
Считайте файл one, удвоив каждый его элемент Файл one Var F1,F2:text; X:char; begin Assign (F1,one.txt); reset (F1); Assign (F2, ); rewrite (F2); While not eof (F1) do Begin Read(F1,x); Write(F2,x+ + x) End; Close (F1); close (F2); End.
Считайте файл two, определите сколько раз в нем встречается буква «а» Qqwerr tttttt aqaa ss dddd S d f g h j S d fffffffffffffff Файл two Var F1:text; X:char; K:integer; Begin K:=0; Assign (F1,two.txt); reset (F1); While not eof (F1) do Begin Read(F1,x); If (x=a) or (x=A) then K:=K+1; End; Wtiteln (количество букв А, k) Close (F1); End.
Считайте файл one, определите сумму цифр, встречающихся в нем Var F1:text; X:char; K, sum :integer; Begin sum:=0; Assign (F1,one.txt); reset (F1); While not eof (F1) do Begin Read(F1,x); If (x>=0) and (x,=9) then begin K:=ord(X)-ord(0); sum :=sum+k End; Wtiteln (sum=, sum); Close (F1); End Файл one
Считайте файл two, построить конкатенацию файла самого с собой Qqwerr tttttt aqaa ss dddd S d f g h j S d fffffffffffffff Файл two Var F1:file of char; F2:text; X:char; I:integer; Begin Assign (F1,two.txt); reset (F1); Assign (F2, ); reset (F2); For I:=1 to 2 do Begin While not eof (F1) do Begin Read(F1,x); Write (F2,x); End; Writeln; seek (F1,0); end; Close (F1); Close (F2); End.