Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Как создать внешний файл данныхСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Внешний фай данных можно создать двумя способами: 1. Создать файл, например, с именем Dan1.pas в каком-либо текстовом редакторе и записать туда необходимую информацию. Файл можно создавать в любом текстовом редакторе (Word, Блокнот и т.д.), но для удобства работы с этим файлом (и особенно в процессе отладки программы) внешний файл надо создать в текстовом редакторе Паскаля. 2. Создать внешний файл данных можно и программно, т.е. в программе создать этот файл и программно же записать туда нужную информацию (данные.) Запись файла Под записью файла понимается: - создание нового файла; - вывод данных в результате работы программы из оперативной памяти во внешний файл (ОП → ВФ). Для этого необходимо выполнить следующие действия: 1. Открыть файл для записи с помощью процедуры Rewrite(Fv); где Fv – файловая переменная. При этом текущий указатель файла (ТУ) устанавливается на начало файла. Если в файле до этого была информация, то она затирается, и указатель устанавливается на начало файла. Схематично выполнение процедуры Rewrite можно представить так: До процедуры Rewrite После процедуры Rewrite ТУ ТУ
2. Вывод данных во внешний файл производится с помощью процедуры Write. Формат процедуры: Write (<имя ФП>, <список вывода>); Происходит запись во ВФ значений из < списка вывода>, после этого выставляются маркеры концов строк (МКС) и маркер конца файла (МКФ). 3. Закрыть файл для записи с помощью процедуры Close (<имя ФП>). Если случайно забыть процедуру Close, то во внешнем файле сформируется «чeпyxa».
Пример 8.1. Сформировать одномерный массив квадратов чисел от 1 до 10. Записать его во внешний файл с именем Dan1.pas в текущей папке (там же, где и программа).
Program Demo-VnF; Var A: Array[1..10] of integer; i: integer; Fout: text; {файловая переменная} Begin Assign (Fout, ‘Dan1.pas’); {связь между ФП и ВФ} ReWrite (Fout); {открыть файл для записи} For i:=1 to 10 do Begin A[i]:=i*i; Write (Fout, A[i]: 5); {запись во внешний файл} End; Close(Fout); {закрыть ВФ} End. В результатом работы программы будет создан файл Dan1.pas в текущей папке, содержащий следующий набор данных: ----1----4----9---16---25---36---49---64---81--100 Символ «-» означает пробел. Пример 8.2. Сформировать двухмерный массив случайных чисел и записать его во внешний файл с именем Dan3.pas на дискетку. Program D_Vn_F; Var A: Array[1..10, 1..10] of real; i, j:integer; Fout: text; {файловая переменная} Begin Assign(Fout, 'А:\Dan3.pas'); {связь между ФП и ВФ } Rewrite(Fout); {открыть файл для записи} Randomize; {несовпадение случайных чисел } For i:=1 to 5 do begin For j:=1 to 7 do begin a[i, j]:=Random; Write(fout,a[i,j]:8:2); end; Writeln(Fout); {перевод курсора на следующую строку} end; Close(Fout); End. Результатом работы программы будет текстовый файлDan3.pas, содержащий матрицу случайных чисел из 5 строк и 7 столбцов. Таким образом, созданы внешние файлы Dan1.pas иDan3.pas. Эти файлы можно использовать в других программах, считывая данные из этих внешних файлов, а не вводя их с пульта. Эти файлы можно скопировать, переименовать, отредактировать в каком-либо текстовом редакторе. Чтение внешнего файла Чтение внешнего файла – это ввод данных из внешнего файла в оперативную память компьютера (ВФ → ОП). Выше мы договорились, что рассматриваем файлы последовательного доступа, т.е. для чтения n -го элемента этого файла необходимо прочесть все первые n -1 элементов. Допуск к элементам файла осуществляется через текущий указатель (ТУ). При считывании данных ТУ последовательно перемещается к следующему элементу и делает его доступным для чтения. При чтении внешнего файла, т.е. при вводе данных из внешнего файла необходимо выполнить следующие действия: 1. Открыть файл для чтения с помощью процедуры ReSet (<имя ФП>). При этом вся информация в файле сохраняется, а текущий указатель устанавливается на начало файла. Схема выполнения процедуры ReSet: До процедуры ReSet После процедуры ReSet ТУ ТУ
2. Прочитать (ввести) данные из ВФ с помощью процедуры Read. Форматпроцедуры: Read (Finp, x). Значение текущего элемента из ВФ записывается в переменную х, текущий указатель перемещается к следующему элементу. х -текущий указатель
3. Считанные данные обработать программно. 4. Закрыть файл с помощью процедуры Close (Finp);
Пример8.3. Прочитать 5 значений данных из созданного в примере 8.1 внешнего файла Dan1.pas (там их 10) и вывести их на экран.
Program D_Vn_F; Var A: Array[1..10] of integer; i:integer; Finp:text; {файловая переменная}
Begin Assign(Finp, 'Dan1.pas'); {связь между ФП и ВФ } Reset(Finp); {открыть файл для чтения} For i:=1 to 5 do begin Read(Finp,a[i]); {чтение из ВФ} Write(a[i]:6); end; Close(Finp); End. В результате работы программы на экран будут выведены пять чисел: -----1-----4-----9----16----25
Функция EOF Если заранее число элементов во внешнем файле неизвестно, то используется стандартная функция EOF (End Of File). Функция фиксирует положение текущего указателя файла на последнем элементе ВФ, т.е.
Схематично это выглядит так: ТУ EOF=F ТУ EOF= T
Пример 8.4. Считать все имеющиеся данные из ВФ Dan1.pas и вывести их на экран. Программа аналогична программе примера 8.3. Запишем только фрагмент ее. Assign(F, 'Dan1.pas'); Reset(F); {открыть файл для чтения} While not EOF(F) do begin Read(F, s); {чтение из ВФ} Write(s:6); End; Контрольные вопросы и задания 1. В каких случаях полезно использовать внешние файлы данных. Понятие текстового файла данных. 2. Зачем используется специальная файловая переменная? Как устанавливается соответствие файловой переменной внешнему файлу? 3. Что общего у процедур Reset и Rewrite, чем они отличаются? 4. Зачем применяется процедура Close и что может произойти при ее отсутствии? 5. Сформировать массив C[N] из элементов арифметической прогрессии для a 0=2, d =3 и записать его во внешний файл Dan.pas 6. Написать фрагмент программы, позволяющий считать массив А[N,M] из внешнего файла Dan.pas и найти произведение диагональных элементов. 7. Написать фрагмент программы, позволяющий считать массив C[N], N=10 из внешнего файла Dan.pas и найти минимальный элемент. 8. Сформировать вектор В[N], используя функцию Rendom, и записать его во внешний файл Dan.pas.
Приложение 1
|
|||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 868; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.175.80 (0.01 с.) |