Реферат по предмету "Информатика"


Текстовые файлы

Реферат на тему «Текстовые файлы». Выполнили: Ученицы**класса «А» средней школы №** *** и ***. Содержание. • Введение… 3- • Процедура READ…-3 -5- • Процедура WRITE… 5 -6- • Процедура WRITELN… 6- • Логическая функция EOLN… 6 -7- • Логическая функция SEEKEOLN…-7- • Логическая функция SEEKEOF… 7 -8- • Логическая функция FILEPOS…-8- • Список литературы…-9-

Введение. Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Текстовые файлы предназначены для хранения тек¬стовой информации. Именно в такого типа файлах хранятся, например, ис¬ходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Турбо Паскале как совокупность строк пере¬менной длины.

Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) ставится специальный признак EOLN {End Of LiNe — конец стро¬ки), а в конце всего файла — признак EOF {End Of File — конец файла). Эти признаки можно протестировать одноименными логическими функциями (см. ниже). При формировании текстовых файлов используются следующие системные соглашения: □

EOLN — последовательность кодов ASCII #13 (CR) и #10 (LF); □ EOF — код #26 стандарта ASCII. Для доступа к записям применяются процедуры READ, READLN, WRITE, WRITELN. Они отличаются возможностью обращения к ним с переменным количеством фактических параметров, в качестве которых могут использоваться символы, строки и числа. Первым параметром в любой из перечисленных процедур может стоять файловая переменная.

В этом случае осуществляется обращение к дисковому файлу или логическому устройству, связанному с переменной процедурой ASSIGN. Если файловая переменная не указана, происходит обра¬щение к стандартным устройствам INPUT И OUTPUT. Процедура READ. Обеспечивает ввод символов, строк и чисел. Формат обра¬щения: READ (<ф.п.>,<сп.ввода>) или READ (<сп.ввода>) Здесь <сп.ввода> — список ввода: последовательность из одной или более

переменных типа CHAR, STRING, а также любого целого или вещественного типа. При вводе переменных типа CHAR выполняется чтение одного символа из файла и присваивание считанного значения переменной. Если перед вы¬полнением чтения указатель файла достиг конца очередной строки, то ре¬зультатом чтения будет символ CR (ASCII код #13), а если достигнут конец файла, то — символ EOF (КОД #26). При вводе с клавиатуры символ CR вво¬дится при нажатии на клавишу <

Enter>, а символ EOF — при одновремен¬ном нажатии клавиш <Ctrl>+<Z> . При вводе переменных типа STRING количество считанных процедурой и поме¬щенных в строку символов равно максимальной длине строки, если только рань¬ше не встретились символы CR или EOF. В этом случае сами символы CR и EOF В строку не помещаются. Если количество символов во входном потоке данных больше максимальной длины строки, "лишние"

символы до конца строки отбра¬сываются, а новое обращение к READ возвращает пустую строку. Таким образом, процедура READ не в состоянии прочесть последовательность строк: первая строка будет прочитана нормально, а все последующие окажутся пустыми. Для ввода по¬следовательности строк нужно использовать процедуру READLN (CM. ниже). При вводе числовых переменных процедура

READ вначале выделяет подстро¬ку во входном потоке по следующему правилу: все ведущие пробелы, сим¬волы табуляции и маркеры конца строк EOLN пропускаются; после выделе¬ния первого значащего символа, наоборот, любой из перечисленных символов или символ EOF служат признаком конца подстроки. Выделенная таким образом подстрока затем рассматривается как символьное представ¬ление числовой константы соответствующего типа и преобразуется во внут¬реннее представление, а полученное значение присваивается

переменной. Если в подстроке был нарушен требуемый формат представления численной константы, возникает ошибка ввода/вывода. Если при пропуске ведущих пробелов встретился символ EOF, переменная получает значение 0. Отметим, что в Турбо Паскале не предусмотрен ввод шестнадцатеричных констант. При использовании процедуры READ применительно к стандартному устрой¬ству

INPUT, т. е. при вводе с клавиатуры, символьные строки запоминаются в буфере, который передается процедуре только после нажатия на клавишу <Enter>. Это позволяет редактировать данные при их вводе. Для редактирова¬ния используются следующие клавиши: &#9633; <Backspace>, <Ctrl>+<H>, <<-> — стирают символ слева от курсора; &#9633; <->> — восстанавливает символ за символом предыдущую строку ввода; &#9633; <

Ctrl>+<Z>, <Enter> — завершает ввод по процедуре READ; оставшиеся "лишние" символьные параметры принимают значение CHR (26), строки возвращаются пустыми, а численные переменные остаются без изменения. Максимальная длина буфера ввода при работе с клавиатурой составляет 127 символов. Ввод с клавиатуры по процедуре READ сопровождается эхо-повтором вводимых символов на экране

ПК. Процедура READ прекрасно приспособлена к вводу чисел. При обращении к ней за вводом очередного целого или вещественного числа процедура "перескакивает" маркеры конца строк, т. е. фактически весь файл рассмат¬ривается ею как одна длинная строка, содержащая текстовое представление чисел. В сочетании с проверкой конца файла функцией EOF процедура READ позволяет организовать простой ввод массивов данных, например, так: const

N = 1000; {Максимальная длина ввода} var f : text; m : array [1 N] of real; i : Integer; begin assign(f, 'prog.dat') ; reset(f); i := 1; while not EOF(f) and (i <= N) do begin read(f,m[i]); inc(i) end; close(f); помещен в начало следующей строки, в то время как в процедуре READ эхо-повтором клавиши <Enter> является символ CR И курсор помещается в на¬чало текущей строки.

Процедура WRITE. Обеспечивает вывод информации в текстовый файл или передачу ее на логическое устройство. Формат обращения: WRITE (<ф.п.>, <сп.вывода>) или WRITE (<сп.вывода>) Здесь <сп. вывода> — список вывода: последовательность из одного или бо¬лее выражений типа CHAR, STRING, BOOLEAN, а также любого целого или ве¬щественного типа. Файловая переменная <ф.п.>, если она указана, должна быть предваритель¬но описана как переменная

типа TEXT и связана с именем файла или логи¬ческим устройством процедурой ASSIGN. Если файловая переменная отсут¬ствует, подразумевается вывод в стандартное устройство OUTPUT, которое обычно связано с экраном ПК. Любой элемент списка вывода может иметь форму OutExpr [ : MinWidth [ : DecPlaces ] ] Здесь: &#9633; OUTEXPR — выводимое выражение; &#9633; MINWIDTH,

DECPLACES — выражения типа WORD (квадратные скобки озна¬чают возможность отсутствия заключенных в них параметров). Подпараметр MINWIDTH, если он присутствует, указывает минимальную ширину поля, в которое будет записываться символьное представление зна¬чения OUTEXPR. Если символьное представление имеет меньшую длину, чем MINWIDTH, оно будет дополнено слева пробелами, если — большую дли¬ну, то подпараметр

MINWIDTH игнорируется и выводится необходимое число символов. Подпараметр DECPLACES задает количество десятичных знаков в дробной части вещественного числа. Он может использоваться только совместно с MINWIDTH и только по отношению к выводимому выражению одного из ве¬щественных типов. Если ширина поля вывода не указана, соответствующий параметр выводится вслед за предыдущим без какого-либо их разделения. Символы и строки передаются выводному файлу без изменений,

но снаб¬жаются ведущими пробелами, если задана ширина поля вывода и эта шири¬на больше требуемой для вывода. При выводе логических выражений в зависимости от их значения выводятся строки TRUE ИЛИ FALSE. (ВВОД логических констант процедурами READ ИЛИ READLN не предусмотрен). Вещественные числа выводятся в экспоненциальном формате, если не ука¬зан подпараметр DECPLACES, В противном случае выбирается формат пред¬ставления числа с фиксированной точкой.

Экспоненциальный формат пред¬ставляет вещественное число в виде _S#.#E*####, где: О _ — пробел; &#9633; s — пробел для положительного и знак "—" для отрицательного чисел; &#9633; # — десятичная цифра; &#9633; Е — символ десятичного основания; &#9633; * — знак "+" или "—" в зависимости от знака десятичного порядка числа. Если подпараметр

MINWIDTH опущен, принимается его значение по умолча¬нию (23). Если MINWIDTH меньше 10, считается, что он равен 10. Если подпараметр DECPLACES равен нулю, ни дробная часть числа, ни деся¬тичная точка не выводятся. При отрицательном значении DECPLACES ЭТОТ параметр игнорируется и число выводится в экспоненциальном формате с учетом MINWIDTH. Если значение DECPLACES больше 18, принимается значе¬ние 18.

Следует учесть, что при указании подпараметра DECPLACES вещест¬венное число всегда будет выводиться в формате с фиксированной точкой и требуемым количеством знаков в дробной части, даже если значение подпа¬раметра MINWIDTH окажется недостаточным для размещения целой части, в этом случае значение MINWIDTH автоматически увеличивается. При выводе на экран в случае, когда длина выводимой последовательности символов превышает ширину экрана или созданного на нем окна, "лишние" символы переносятся

на следующую экранную строку. При заполнении эк¬рана или окна его содержимое сдвигается вверх на одну строку. Процедура WRITELN. Эта процедура полностью идентична процедуре WRITE за исключением того, что выводимая строка символов завершается кодами CR и LF. При вызове WRITELN можно опускать параметр <сп.выводах В этом случае в файл передается маркер EOLN, ЧТО при выводе на экран приведет к переводу курсора в начало

следующей строки. Логическая функция EOLN. Возвращает TRUE, если во входном текстовом файле достигнут маркер конца строки. Формат обращения: EOLN (<ф.п.>) Если параметр <ф.п.> опущен, функция проверяет стандартное устройство INPUT. Существует некоторое отличие в работе функций EOLN И EOF С дисковыми файлами и логическими устройствами.

Дело в том, что для логического уст¬ройства невозможно предвидеть, каким будет результат чтения очередного символа. Поэтому при работе с логическим устройством функция EOLN воз¬вращает TRUE, если последним считанным с устройства символом был EOLN или EOF, в то время как при чтении с диска TRUE возвращается в случае, ес¬ли следующим считываемым символом будет EOLN или EOF. Аналогичное раз¬личие наблюдается и в функции

EOF: ДЛЯ логического устройства TRUE воз¬вращается в случае, если последним символом был EOF, а при чтении с диска — если следующим считываемым символом будет EOF. Иными слова¬ми, функции тестируют соответствующие признаки для логического устрой¬ства после очередного чтения, а для файла — перед чтением. Логическая функция SEEKEOLN. Пропускает все пробелы и знаки табуляции до маркера конца строки

EOLN ИЛИ до первого значащего символа и возвра¬щает TRUE, если маркер обнаружен. Формат обращения: SEEKEOLN (<ф.п.>) Если параметр <ф.п.> опущен, функция проверяет стандартный файл INPUT. Логическая функция SEEKEOF. Пропускает все пробелы, знаки табуляции и маркеры конца строки EOLN до маркера конца файла или до первого знача¬щего символа и возвращает

TRUE, если маркер обнаружен. Формат обращения: SEEKEOF (<ф.п.>) Если параметр <ф.п.> опущен, функция проверяет стандартный файл INPUT. В следующем примере, иллюстрирующем работу с текстовым файлом, под-считывается общее количество символов в файле, и результат делится на 40 000 — таким способом можно оценить объем рукописи в так называемых учетно-издательских листах: var f: text; s:

String; const Sum: Longlnt = 0; {Здесь будет количество символов} begin Write('Имя файла: '); {Запрашиваем } Readln(s); {и вводим имя файла} assign(f,s); Reset(f); {Открываем файл} while not EOF(f) do {Подсчитываем } begin {количество } ReadLn(f,s); {символов } inc(Sum, Length(s)) {в файле} end; Close(f); {Закрываем файл} WriteLn('Объем = Sum/40000:6:2 уч.изд.л ) end.

Функцию нельзя использовать для текстовых файлов. Чтобы переместить указатель в конец типизированного файла, можно написать: seek (FileVar, FileSize(FileVar)); где FILEVAR — файловая переменная. Функция FILEPOS. Возвращает значение типа LONGINT, содержащее порядко¬вый номер компонента файла, который будет обрабатываться следующей операцией ввода/вывода.

Формат обращения: FILEPOS (<ф.п.>) Функцию нельзя использовать для текстовых файлов. Первый компонент файла имеет порядковый номер 0. Список литературы. • Фаронов В.В. Turbo Pascal. – СПб.:БХВ – Петербург, 2004. – С.143-148. • Enternet.



Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.