Работа с текстовыми файлам
Текстовые файлы встречаются нам повсюду. И эта статья покажет вам основные методы работы с текстовыми файлами - создание/редактирование, чтение/сохранение, поиск слова в тексте.
Приступим !
Создайте стандартный проект и наклейте на него текст-бокс с именем "txtText", укажите у него свойство "MultiLine" равным "True" - "Истина" и две коммандные кнопки с именами "btnOpen" и "btnSave". Свойство "Caption" укажите у "btnOpen" - "Открыть", а у "btnSave" - "Сохранить". Сделайте двойной клик по кнопке "Сохранить" и в программный код впишите
Open "c:\temp.txt" For Output As #1 Print #1, txtText.Text Close #1
Поясняю: "Open" это открытие файла "c:\temp.txt" это имя открываемого файла, если его нет, то он будет создан, если есть, то весь текст в этом файле будет очищен и заменём текстом из "txtText". "For output as #1" = "Для выхода под номером 1" т.е открываем файл под порядковым номером один, для записи информации в него. Вместо единицы можно указываль любое число от 1 до 500 - это является обязательным параметром. Зато #'ом можно пренебречь - он как бы для удобства, сразу будет понятно, что эта единица или другое число относится к файлу, а не к какой-нибудь переменной, хотя в некоторых местах его нельзя использовать!
"Print #1, txtText" - "Print"(Печать) - Метод позволяющий влить содержимое "txtText" в файл под номером один.
"Close #1" - это для закрытия текстового файла, так как если он не будет закрыт, то пока программа не будет закрыта, он не будет доступен другим программам.
Всё! С этой частью мы разобрались. Запускайие проект, вводите какую-нибудь информацию в "txtText" и нажимайте кнопку "Сохранить".
Теперь у вас на диске "C:" создан файл с именем "temp.txt". Но сохранить сохранили, надо же ещё и прочесть...
Чтение файла немного посложнее... Делайте двойной клик по кнопке "Открыть" и вписывайте
Open "c:\temp.txt" For Input As #1 Do Until EOF(1) Line Input #1, txt alltxt = alltxt + txt + vbCrLf Loop Close #1 txtText.Text = alltxt
Поясняю: "Open "c:\temp.txt"" - это тоже самое, что и при сохранении, а "For Input As #1" - это "Для входа под номером 1" т.е только чтение файла.
Do Until EOF(1) - "Читать, пока не будет достигнуть конец файла" т.е считывать построчно пока не будет достигнута последняя строка в читаемом файле и это как раз та самая ситуация, в которой нельзя указывать знак # в скобках.
Line Input #1, txt - "Линия входа файла под номером 1 = переменной txt"
alltxt = alltxt + txt + vbCrLf - переменная alltxt равна самой себе, плюс переменная txt. А vbCrLf - это уникальная константа, которая заменят "Chr(13)+Chr(10)" т.е переход на новую строку. Если мы её не вставим, то текстовый файл будет одной строкой в txtText.
Close #1 - закроем файл.
txtText.Text = alltxt - здесь выливаем в текст-бокс открытый файл, содержащийся в переменной alltxt.
Всё! Можете проверить.
Сохранять и открывать файлы мы научились...а как искать текст в окне...чем же наша программа хуже обычного блокнота Windows:)
Наклеем на форму ещё один текст-бокс с именем "txtSearch" и ещё одну кнопку с именем "btnSearch" и свойством "Caption" равным "Поиск"
Сделаем двойной клик по форме и в раздел "General Declarations" впишем "Dim P As Integer" - это переменная, которая будет содержать в себе позицию курсора в текстовом поле. В событие Form_Load впишите "P = 1".
Теперь сделаем двойной клик по кнопке "Поиск" и в программный код впишем
' Если искомое слово присутствует то... If InStr(P, txtText.Text, txtSearch.Text) <> 0 Then ' Текстовое поле с главным текстом получает фокус:) txtText.SetFocus 'Начинаем выделять слово... txtText.SelStart = InStr(P, txtText.Text, txtSearch.Text) - 1 ' Завершаем выделение txtText.SelLength = Len(txtSearch.Text) ' Изменяем переменную на позицию курсора P = InStr(P, txtText.Text, txtSearch.Text) + Len(txtSearch.Text) ' Если в тексте больше нет искомого слова, то выводим об этом сообщение. Else MsgBox "Искомое слово не найдено" End If
Оставить комментарий
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.


