Чтение, создание, запись и печать текстовых файлов

Чтение, создание, запись и печать текстовых файлов

Владимир Коробицын

Создайте папку с произвольным названием, например, Write. Запустите Visual Basic. В проект будущего приложения добавьте файл Cmdialog.vbx (поддержка окна общих диалогов). На форме Form1 разместите объекты Text1 (Текстовое поле), CMDialog1 (Окно общего диалога). Для объекта Text1 свойству MultiLine (Много строк) придайте значение True (Истина) – теперь в тексте, вводимом пользователем, по достижении конца строки будет осуществляться автоматический перенос по словам. Свойству Text (Текст) этого объекта придайте значение пустого множества, а свойству ScrollBars (Полоса прокрутки) значение 2-Vertical (Вертикально). Объект CMDialog1 служит для вызова во время работы программы стандартных диалоговых окон:

1. Открытие файла.

2. Сохранение файла.

3. Выбор цвета.

4. Выбор шрифта.

5. Настройка принтера.

Например, для вызова окна общего диалога «Выбор цвета» необходимо использовать строку программного кода:

CMDialog1.Action = 3 ‘ активизация окна ВЫБОР ЦВЕТА

Вызовите окно разработки меню (Menu Design Window) и постройте систему меню по следующей схеме:

Caption (Надпись)   Name (Имя в программе)

Файл       File

----Новый      New

----Открыть     Open

----Сохранить     Save

----Печать     Print

----Выход      End

Проведите обработку выборов меню – вновь созданные процедуры наполните программным кодом. В процедуру прерывания New_Click впишите строку:

Form1.Text1.Text = ""  ‘ очистка текстового поля

В этой строке очистка текстового поля от ранее введенного текста происходит путем присвоения свойству Text (Текст) объекта Text1 значения, соответствующего пустому множеству.

В процедуру прерывания Open_Click запишите программный код:

CMDialog1.Filename = "*.txt" ‘ указание типа открываемых файлов

CMDialog1.Action = 1  ‘активизация окна диалога ОТКРЫТИЕ ФАЙЛА

Form1.Caption = CMDialog1.Filename  ' показ пути и имени файла

Open CMDialog1.Filename For Input As #1 ‘ открытие файла для чтения

Form1.Text1.Text = Input$(LOF(1), 1) ‘ чтение файла в текстовое поле

Close #1         ‘ закрытие файла

В четвертой строке происходит открытие выбранного файла для чтения под номером «Первый». Пятая строка считывает содержимое открытого файла в текстовое поле объекта Text1. Здесь инструкция LOF определяет длину файла, открытого под номером «Первый». Шестая строка необходима для закрытия файла под номером «Первый».

В процедуру прерывания Save_Click впишите строки:

CMDialog1.Action = 2  ‘ активизация окна СОХРАНЕНИЕ ФАЙЛА

' если имя файла не указано, то выход из процедуры

If CMDialog1.Filename = "" Then Exit Sub

Form1.Caption = CMDialog1.Filename & ".txt" ' показ пути и имени файла

‘ открытие файла для записи

Open CMDialog1.Filename & ".txt" For Output As #1

Print #1, Form1.Text1.Text    ‘ запись текста в файл

Close #1       ‘ закрытие файла

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

В процедуру прерывания Print_Click впишите программный код:

Printer.FontName = "Arial Cyr" ‘ выбор вида шрифта для печати

Printer.FontSize = 12  ‘ установка размера шрифта для печати

Printer.Print ""    ‘ инициализация объекта принтер

Printer.Print Form1.Text1.Text  ‘ вывод текста на бумагу

Printer.EndDoc     ‘ остановка печати документа

Самостоятельно завершите обработку выборов меню для знакомой Вам команды «Выход». Сохраните проект приложения. Создайте исполняемый EXEфайл.

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