Все текстовые файлы. Реферат: Текстовые файлы. Редакторы текстовых файлов. Процедуры при работе с файловыми переменными

После закрытия файла связь файловой переменной с физическим файлом не нарушается, и файл повторно может открываться без дополнительного вызова процедуры Assign.

Процедура close закрывает открытый файл

close (файловая_переменная);

Закрытие файла гарантирует сохранность и полноту заполнения физического файла.

Если программа прервалась из-за ошибки до закрытия файла, то он все-таки будет создан на носителе, но содержимое последнего буфера не будет перенесено в файл.

То же самое случится и в том случае, если вообще забыть поставить в программу вызова Close.


Текстовый файл это совокупность символьных строк переменной длины.

Строки состоят из символов в коде ASCII для MS-DOS и ANSI для Windows.

Его можно создавать и редактировать с помощью любого текстового редактора кода Dеlphi, Lazarus или Word, WorPad или NotePad.

(При создании в Delphi в главном меню следует выбрать File ÞNew ÞOther, при этом открывается диалоговое окно New Items. Во вкладыше New следует выделить пиктограмму Text и нажать клавишу Оk

При создании в Lazarus в главном меню следует выбрать Файл ÞСоздать, при этом открывается диалоговое окно Создать... . В диалоговом огне следует выбрать МодульÞТекст и нажать клавишу Оk).

Текстовые файлы имеют расширение *.txt.

Схематическое изображение текстового файла:

Управляющие символы #13 и #10 (возвращение каретки – ввод следующих символов начнется из первой позиции, и перевод строки – ввод начнется с пустой строки.).

Символы #13 и #10 – маркер конца строки .

Пустая строка содержит только символы #13 и #10 .

В конце файла стоит признак конца файла – управляющий символ #26 (маркер конца файла ).

Пустой текстовый файл содержит один символ #26.

При записи чисел, строк и логических значений они превращаются в символьный (текстовый) вид.

При чтении чисел и строк они автоматически превращаются из текстового представления в машинное.

Для работы с текстовым файлом необходимо определить файловую переменную:

Если файл открыт для записи (процедура Rewrite) – разрешена только запись данных.

Если файл открыт для чтения (процедура Reset) – разрешено только чтение.

Считывание данных из текстового файла осуществляется процедурами Read и Readln:

Read

Readln (файловая_переменная, список_ввода);

список_ввода – перечень переменных символьного, строкового, целого и действительного типов.

Сложные структурированные типы (такие, как массивы, множества, записи и др.) могут быть введенны только по элементам (по полям записей).

После считывания определенного компонента файловый указатель сдвигается к следующему компоненту.


Если выполняется считывание файла в переменную типа char, то процедура Read считывает один символ. Когда достигнут конец строки, результатом считывания являются символы конца строки, #13 и #10, а когда достигнут конец файла, считывается символ конца файла, #26.

Во время считывания значения в переменную целого или действительного типа сначала выделяется подстрока, в которой удалены все ведущие пробелы, символы табуляции (#9) и маркеры конца строки.

Считывания прекращается при обнаружении первого пробела, маркера конца строки или символа табуляции.

Считанная строка цифровых символов превращается в число, которое присваивается соответствующей переменной.

Следующая операция считывания начинается с пробела (маркера конца строки, символа табуляции и т.п.).

Если выделенная подстрока содержит нецифровые символы, то возникает ошибка ввода-вывода.

Во время считывания данных в переменную типа string процедура Read считывает все символы до маркера конца строки.

Если количество символов строки в файле больше количества, указанного в объявлении строковой переменной, то лишние символы не считываются.

Если процедурой Read определенную строку прочитали полностью, то во время следующего ее вызова считывание начинается с маркера конца строки, а значит, будет считана строка нулевой длины.

Процедура Read не переводит файловый указатель на следующую строку символов и потому ее нельзя использовать для считывания последовательности строк.

Процедура Readln считывает все символы строки с символом его конца включительно, что обеспечивает перевод файлового указателя на новую строку.

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

Применяя процедуру Readln для считывания чисел, следует учитывать, что после считывания последней цифры числа все символы текста, которые остались до маркера конца строки, будут пропущены, и доступным станет первый символ следующей строки текстового файла.


Запись в текстовый файл осуществляется с помощью процедур Write и Writeln :

Write

Writeln (файловая_переменная, список_вывода);

Здесь файловая_переменная – переменная типа text;

список_вывода – перечень переменных или выражений символьного, строкового, целого, действительного или логического типа.

Различие между процедурами Write и Writeln заключается в том, что строка, которая записывается в файл с помощью процедуры Writeln, завершается символом конца строки.

Если процедура Writeln используется без списка вывода, то в файл записывается пустая строка.

Для считывания из текстового файла всех данных нужно использовать функцию Eof, которая определяет, достигнут ли конец файла. Синтаксис вызова этой функции.

Eof (файловая_переменная);

Она возвращает значение булевого типа. Если файловый указатель находится за последним элементом файла, или если файл пустой функция возвращает значение True. Иначе она возвращает значение False.

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

Для начала разберемся, что такое текстовые файлы и в чем их различие от двоичных файлов. Текстовые файлы являются подмножеством двоичных файлов, но в отличии от двоичных не могут содержать весь набор символов. Вся информация в файле разбивается на строки, ограниченные символам возврат каретки (CR) и перевод строки (LF). Допустимые символы это символы с кодами от 32 до 255, символы с кодами ниже 32 являются управляющими и допустимы только следующие коды:

· 08 (BS) - возврат на шаг

· 09 (TAB) - табуляция

· 0A (LF) - перевод строки

· 0C (FF) – перевод листа

· 0D (CR) – возврат каретки

· 1A (EOF) – конец файла

Такая ситуация сложилась в стародавние время, когда устройством вывода были телетайпы, затем пишущие машинки и потом появились дисплеи. А каналы связи не позволяли передавать двоичные данные, да и сам они были сначала 5 битные, затем 7 битные и только потом таблицу символов расширили до 8 бит, для поддержки национальных языков и для полной совместимости с компьютерами, где основной единицей был байт. Остальные коды использовались или для управления каналом передачи или для управления специальными устройствами.

Паскаль поддерживает работу с такими файлами, через файловую переменную типа TextFile, где основной единицей является строка, состоящая из основных базовых типов (в текстовом виде, разделенных пробелом), наиболее часто это просто строка, как набор символов. В качестве примера напишем программу преобразования из DOS кодировки (OEM) в Windows (ANSI). Техническое задание:

1. Программа должна работать в консольном режиме и получать входные параметры через командную строку.

2. Программа называется Oem2Ansi

3. На вход поступают два параметра, имя исходного файла и имя выходного файла;

4. Имя выходного файла может быть опущено, в этом случае используется имя входного файла, с изменением расширения выходного на.ANS;

5. Если имена не указаны, то должна выводиться справка о синтаксисе команды;

6. ошибки обрабатывать будем в минимальном объеме, коды ошибок выдаются как ErrorLevel и доступны для обработки в.bat файле.

Текстпрограммы Oem2Ansi

program Oem2Ansi; {$APPTYPE CONSOLE} uses Windows, SysUtils; var InFile: TextFile; OutFile: TextFile; InFilename: string; OutFilename: string; S: string; begin if ParamCount = 0 then begin WriteLn("Syntax is: Oem2Ansi Infile "); Halt(1);// Ошибкасинтаксиса end; InFilename:= ParamStr(1); if ParamCount = 2 then OutFileName:= ParamStr(1) else OutFileName:= ChangeFileExt(InFilename, ".ans"); AssignFile(InFile, InFilename);// связываемвходнойфайл AssignFile(OutFile, OutFilename);// ивыходнойфайл try try Reset(InFile);// открываем входной файл Rewrite(OutFile);// создаем выходной файл while not EOF(InFile) do// крутимпоканеконецфайла begin Readln(Infile, S);// читаемстроку if Length(S) > 0// на вход функции можно then// подавать только не пустые строки begin OemToChar(Pchar(S), Pchar(S)); WriteLn(Outfile, S);// записываемстроку end else begin WriteLn(Outfile);// записываем пустую строку end; end; except Halt(2);// любаяошибка // не удалось преобразовать файлы end; finally CloseFile(InFile); CloseFile(OutFile); end; end.

Разберем работу программы по кусочкам. Вначале объявляются две файловые переменные текстового типа и две переменные для имен файлов, а также одна переменная для хранения и обработки строки. Затем анализируются входные параметры, если параметры не указываются, то выводится сообщение об ошибки и программа заканчивается с кодом выхода 1. Обратите внимание на форму процедуру WriteLn, если в параметрах не указывается файловая переменная, то вывод производится на консоль, что удобно для выдачи различных сообщений, данная форма возможна только для консольного приложения и не применима в GUI приложении.

После этого первый параметр копируется в переменную InFilename, если параметров два, то второй параметр копируется в переменную OutFilename, иначе используется имя входного файла и изменяется расширение, на расширение по умолчанию.ANS

После этого имена файлов связываются с файловыми переменными. Теперь мы готовы к преобразованию файла, которое будет делаться в двух защищенных блоках, первый блок для защиты ресурсов, а второй блок для защиты от возможных ошибок при работе с файлами, для любых ошибок возвращается код ошибки 2.

Первое действие состоит в открытии файлов, входной файл открывается с помощью процедуры Reset -это открытие текстового файла в режиме чтения, а второй с помощью Rewrite – открытие в режиме записи, если файл существует, то он переписывается. Есть еще одна форма открытия текстовых файлов, это функция Append(FileVar), открытие в режиме добавления строк, если файл существует, то курсор позиционируется в конец файла и файл открывается в режиме записи, если файла нет, то он создается. После нее управление передается в блок finally. В случае ошибки управление сначала передается в блок except, а затем в блок finally.

После этого создается цикл чтения сток пока не будет, достигнут конец файла, или физический или будет встречен символ EOF. Функция EOF(FileVar).

Внутри цикла читается строка во временную переменную Readln(Infile, S) и тут принята одна предосторожность, в функцию Oem2Char НЕЛЬЗЯ передавать пустые строки, поэтому производится анализ длины строки, если строка не нулевая, то производится конвертирования и запись ее в выходной файл, процедурой WriteLn(Outfile, S), иначе в файл пишется пустая строка.

По окончанию цикла или в случае ошибки управление поступает в защищенный блок finally, где оба файла закрываются и управление передается операционной системе.

Домашнее задание - переписать в Ansi2Oem для выполнения обратной функции, с тем же техническим заданием, расширение по умолчанию OEM

Для особо желающих сделать GUI версию, с диалогами выбора файлов, с прогресс-бар, с предварительным просмотром первых 10-20 строк входного файла (переключение кнопкой OEM/ANSI), с целью определения направления перекодирования, с остальными наворотами, которые сумеет придумать душа, например пакетная обработка всех файлов из папки.

ВВЕДЕНИЕ

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

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

Удобство и эффективность применения компьютеров для подготовки текстов привели к созданию множества программ для обработки документов. Такие программы называются редакторами текстов (Word Processors). Возможности этих программ различны - от программ, предназначенных для подготовки небольших документов простой структуры, до программ для набора, оформления и полной подготовки к типографскому изданию книг и журналов (издательские системы).


Прежде чем начать знакомство с меню редактора MS-DOS Editor, следует попрактиковаться в наборе текста. Текст набирается с клавиатуры как на обычной печатной машинке, в конце каждой строки нажимается Enter.

Чтобы разбить слишком длинную строку на две, надо нажать Enter там, где должен быть конец строки.

Каждое нажатие Enter добавляет пустую строку. Если образуются лишние устые строки, удалить их можно клави шей Del.

Можно поправить ошибки в тексте, перемещая курсор по рабочему полю клавишами или мышью. Для удаления символа надо воспользоваться клавишей Del если курсор стоит перед символом который надо удалить или клавишей Backspace если курсор стоит после это символа.

Если удалить символ нужно только для того, чтобы на его месте набрать другой, удобнее перевести клавиатуру в режим замены. По умолчанию клавиатура находится в режиме вставки. Переключателем между режимами вставки и замены служит клавиша Ins.

При вставке все последующие символы сдвигаются вправо.

При замене текущий символ исчезает.

Документы, создаваемые в редакторе MS-DOS Editor, можно сохранять в текстовых файлах, для этого следует пользоваться меню File Save. Меню File Save As... позволит сохранить файл под другим именем.

Для очистки редактора и начала работы над новым файлом служит меню File New. Чтобы загрузить уже готовый файл в редактор, воспользуйтесь меню File Open. В диалоговой панели следует выбрать курсором имя требуемого файла. Меню File Print позволяет распечатать на принтере либо выделенную часть документа, либо весь текст.

Среди простых редакторов текста в России наибольшее распространение получил ЛЕКСИКОН.

Текстовый процессор Лексикон

Текстовый процессор Лексикон разработан Е.Н.Веселовым в 1985 году в ВЦ АН СССР. С 1991 года поставляется фирмой «Мик-роинформ». Он имеет интерфейс на русском языке и позволяет подготавливать несложные документы с текстом на русском и английском языках. ЛЕКСИКОН удачно заполняет свою «экологическую нишу» - он вполне подойдет тем, кому нужен простой инструмент для подготовки небольших и несложных документов, причем от них не требуется высокого полиграфического качества.

Чтобы начать работу над новым файлом, необходимо дать команду меню Текст очистить или воспользоваться любым свободным окном Лексикона. Всего доступно 10 окон, и нажатием А +«ци фра на буквенно-цифровой клавиатуре можно перейти к окну с соответствующим номером.

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

Команда меню Текст печать Старт позволит распечатать документ на принтере, если переключатель ПРИНТЕР1ФАЙ 1ЭКРА установлен в положение ПРИНТЕР. При положении ЭКРАН можно просмотреть, как в точности будет выглядеть распечатка текста на принтере.

Редактор MS-Word

Вот только некоторые из функций, поддерживаемых Word:

· использование множества различных шрифтов (размеров и начертаний) символов и различных способов их выделения (полужирные, курсивные, подчеркнутые символы и т.д.); указание параметров абзацев текста и страниц документа; набор текста в несколько колонок; печать верхних и нижних колонтитулов произвольного вида; автоматическое формирование оглавления и различных видов указателей;

· оформление таблиц и абзацев «бок о бок ; включение рисунков (графических файлов); размещение абзацев (например, рисунков) в любом месте страницы (остальной текст при этом может «огибать» рисунок).

Опытные пользователи очень ценят такую возможность Word, как стили. Word позволяет записать в так называемую таблицу стилей все параметры наиболее часто используемых видов оформления текста: абзацев, символов и разделов документа. Если сделать это, то затем любому участку текста можно будет присвоить один из «стандартных» видов оформления с помощью одного-двух нажатий клавиш. Это не только значительно ускоряет набор документа, но и повышает гибкость его оформления. Например, чтобы изменить шрифт и расположение у всех заголовков некоторого уровня (скажем, заголовков параграфов), не потребуется искать эти заголовки и вручную изменять их форматирование - достаточно исправить стиль для этих заголовков, и они автоматически примут нужное оформление.

Shift+Ctri с «М», «1», «Н», «С», «(» и «5» (в правой части клавиатуры) зарезервированы.

На самом деле «запрещенных» комбинаций гораздо больше. Если определить для своих программ сочетания с Shift, то время от времени пользователь будет совершенно неожиданно «выпадать» из редактора текста при попытке написать заглавную букву, а сочетания с Alt не пройдут даром при работе в программах, где опции меню вызываются на Alt+буква - как и в самой MS-DOS Shell. В Microsoft Word зарезервированы для внутренних нужд чуть ли не все возможные комбинации клавиш!

Сам переключатель задач - это программа DOSSWAP.EXE, которая загружается перед выполнением любой прикладной программы и заканчивает работу после завершения программы с возвращением в MS-DOS Shell. Программа DOSSWAP занимает около 30 Кбайт оперативной памяти.

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

TXT

Данный формат появился вместе с первым компьютером. В *.txt-файле содержится только текстовая информация и ничего больше – данные о форматировании, шрифтах, картинках там сохранить не получится. Формат является наиболее универсальным – он может открыться на всех устройствах с помощью любого приложения.

RTF

Расширенный текстовый формат (Rich Text Format) был разработан компанией Microsoft как универсальный кросс-платформенный формат для хранения текстовой информации. Сохраняет данные форматирования, позволяет производить вставку дополнительных объектов:

  • Формул;
  • Таблиц;
  • Сносок и др.

Основная «фишка» rtf-формата – использование специальных «управляющих» слов, выделенных спецсимволами, что приводит к значительному увеличению объема файла.

DOC

Формат *.doc также разработан корпорацией Microsoft и использовался в текстовом редакторе . Если быть точным, то doc-файлы на самом деле бинарные, их можно открыть в большинстве современных текстовых редакторов. Имеют возможности сохранения форматирования, стилевого оформления, вложения картинок и других объектов в текст, а также поддержку гиперссылок.

DOCX

Усовершенствованный и лицензированный формат от Microsoft, появившийся впервые с пакетом Office 2007. Представляет собой следующий этап формата *.doc.

HTML

Достаточно популярны сейчас форматы, основанные на Hyper Text Markup Language (HTML) – HTM, CHM, MHT и др. Язык HTML был разработан специально для создания веб-страниц, но благодаря своей универсальности, удобству и небольшому размеру стал широко использоваться для хранения текстовых данных. Любой HTML-документ можно прочитать с помощью стандартных инструментов операционной системы, без использования сторонних программ.

PDF

Формат разработан компанией Adobe специально для нужд полиграфии. Впоследствии пользователи оценили удобство использования pdf-файлов, и этот формат стал стандартом для обмена документами.

ODT

Набор правил, по которым сохраняются данные в файле, называется форматом файла. Различные типы файлов, такие как текстовые файлы, растровая графика и т.п., используют различные форматы. В общем случае для одного типа файлов может быть определено несколько разных форматов, хотя часто под типом файла и форматом понимают одно и то же. Формат файла определяется по расширению имени файла, которое добавляется к имени файла при его сохранении в определенном формате, например, DOC, GIF и т. д.

Как правило, форматы файлов создаются для использования в строго определенной прикладной программе. Например, графические объекты, создаваемые в известном пакете векторной графики CorelDRAW, сохраняются как файлы с расширением CDR, а изображения, формируемые другим графическим пакетом, CorelXara, записываются на диск как файлы с расширением XAR. Некоторые форматы не связываются с конкретными приложениями, то есть являются универсальными. Одним из наиболее известных универсальных форматов является формат TXT (формат текстовых файлов DOS).

Часто используют сжатие компьютерных файлов для экономии места на носителе. Существует много способов сжатия файлов. Эти способы зависят от исходного формата файлов. Как правило, чем выше степень сжатия, тем медленнее выполняются операции чтения и записи.

Что касается алгоритмов сжатия, то имеются как алгоритмы сжатия без потери данных, так и алгоритмы, при использовании которых потеря данных возможна.

Сжатие без потерь гарантирует, что все данные, которые были в файле до сжатия, будут присутствовать и после распаковки файла. Механизмы сжатия без потерь используются при сохранении текста или числовых данных, например электронных таблиц или файлов документов. Примерами алгоритмов сжатия без потерь могут служить общеизвестные алгоритмы ZIP, ARJ, и другие.

Дадим краткое описание основных используемых форматов:

§ American Standard Code for Information Interchange ASCII (TXT). Формат текстовых файлов, разработанный Американским институтом стандартов (American National Standards Institute). Поддерживается всеми операционными системами и всеми программами. Представляет собой текстовый файл в DOS-кодировке, нет функции вставить рисунок, нет форматирования, работает во всех машинах, возможно создать только файлы малого объема.



§ ANSI (TXT). Формат текстовых файлов в кодировке ANSI (для кодовой страницы Microsoft Windows)

§ MsWord для DOS, Windows (.DOС). Формат документов, разработанный корпорацией Microsoft, поддерживается программами для MS-DOS и большинством текстовых процессоров. Он сохраняет исходное форматирование документов, а также стили начертания символов. Кроме текстовой информации, файлы этого формата могут содержать графические картинки с различными параметрами. Поддерживает 256 цветов. Не поддерживает сжатие. Используется в основном для обмена форматированными текстовыми данными между различными платформами и приложениями.

§ Hypertext Markup Language HTML (HTM, HTML). Язык разметки гипертекстовых документов. Все страницы, расположенные в Internet, созданы с использованием этого специального языка. HTML-документы представляют собой ASCII-файлы, доступные для просмотра и редактирования в любом текстовом редакторе. Отличием от обычного текстового файла является то, что в HTML-документах присутствуют специальные команды-теги, которые определяют правило форматирования документа. Если вам удалось освоить язык HTML, то вы можете создать страницы для Internet. Добавляя теги (метки) к обычному тексту, вы заставляете программу просмотра отображать этот текст определенным образом и размещать на странице изображения. Если вы изучили Java и JavaScript, то знаете, как расширить возможности HTML, помещая внутри тегов команды, написанные на языке сценариев.

§ Portable Document Format PDF (.PDF). Этот формат хранения документов, разработанный фирмой Adobe, претендует на роль открытого типографского стандарта для Web. Он рассматривается как альтернатива HTML. Недостатком HTML является то, что документы, переведенные в HTML, обычно не сохраняют первоначальный формат, причем HTML предлагает при просмотре очень ограниченное число гарнитур. Напротив, пользователи программы Acrobat и PDF-инструментария для создания, распространения и просмотра документов в первоначальном формате, знают, что читатели увидят публикацию именно такой, какой она была сделана. Формат PDF незаменим, если требуется получить точную копию необходимого документа. Как пример успешного применения PDF для документов на русском языке приведем сервер "Московских новостей" в Internet. Представленные на нем в электронном виде материалы полностью повторяют бумажный оригинал, отпечатанный типографским способом.

§ Standard Generalized Markup Language (SGML). Развитие HTML переводится как стандартный язык обобщенной разметки. Представляет собой инструментальный набор механизмов создания структурированных документов, размеченных с помощью дескрипторов (tags). По сравнению с HTML он обеспечивает более гибкие и разносторонние возможности форматирования в Web. Однако SGML отличается и повышенной скоростью, поэтому как более простое средство применяется PDF. Могущество SGML заключается в его межплатформенном структурном подходе к описанию содержания документов. SGML является фактически метаязыком, т.е. предназначен для описания языков разметки, применяемых при создании документов.