Практическая работа по теме Приемы работы с различными источниками данных 1 Задание Элементы управления MainMenu, OpenFileDialog и SaveFileDialog 1




Скачать 329.88 Kb.
страница2/6
Дата14.07.2016
Размер329.88 Kb.
1   2   3   4   5   6

Задание 2. Чтение данных из текстового файла

Задача


Рассмотреть стандартные средства VB.NET для чтения данных из текстовых файлов, состоящих из строк разной длины, отделенных друг от друга двумя специальными символами – возвратом каретки и переводом строки.

Решение


Использовать процедуры FileOpen, LineInput, Input, FileClose для выполнения операций по открытию, чтению и закрытию текстового файла.

Обсуждение


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

Для работы с текстовыми файлами VB.NET располагает стандартными средствами: процедурами, функциями, встроенными диалоговыми окнами.

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

FileOpen (filenumber, filename, [workmode], [OpenAccess], [OpenShare], [RecordLength]),

где


  • filenumber – целый положите файловый номер;

  • filename – имя файла;

  • workmode – режим работы; для текстовых файлов этот параметр может быть равен OpenMode.Input (для чтения), OpenMode.Output (для записи), OpenMode.Append (для добавления в конец файла),

  • OpenAccess – режим доступа, необязательный параметр, определен по умолчанию;

  • OpenShare – режим совместного использования файла приложениями, необязательный параметр, определяется по умолчанию;

  • RecordLength – длина записи в байтах для типизированного файла, необязательный параметр.

После окончания работы с файлом его следует закрыть при помощи процедуры FileClose (filenumber), где filenumber – файловый номер, присвоенный файлу при его открытии процедурой FileOpen.

Процедуры ввода–вывода в файлы в Visual Basic позволяют читать и записывать последовательные текстовые данные. Для чтения текстовых данных из файла нужно открыть файл с помощью процедуры



FileOpen (filenumber, filename, OpenMode.Input)

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

Функция LineInput() записывает очередную строку из входного файла filenumber в переменную variable. Синтаксис функции следующий: variable = LineInput(filenumber).

Процедура Input (filenumber, variable) позволяет считать из текстового файла значения, разделенные запятыми. Она записывает очередную последовательность символов из входного файла в переменную variable, пока не встретилась запятая или пара символов возврат каретки/перевод строки.

Для отображения данных, прочитанных из текстового файла, можно использовать элемент управления TextBox с предварительной его настройкой (рис. 5.4). Свойство MultiLine=True позволяет отображать более одной строки одновременно, свойство Anchor позволяет зафиксировать синхронность изменения размеров текстового окна при изменении размеров окна формы. Свойство Anchor устанавливается щелчками мыши по соответствующим сторонам окна (см. установку на рис. 5.4).

Рис. 5. 4. Установление свойств элемента TextBox

Можно также воспользоваться другим элементом управления RichTextBox, который имеет большую функциональность по отношению TextBox.

Самостоятельно


Создайте в Блокноте текстовый файл, состоящий из нескольких строк различной длины. Конец строки фиксируйте нажатием клавиши Enter (другими словами, создайте несколько абзацев текста).

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

В меню дочернего окна добавьте команды для чтения файла в режиме LineInput и Input.

Пример чтения текстового файла в режиме Input приведен ниже.



Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click

Dim fname, s As String

If OpenFileDialog1.ShowDialog = DialogResult.OK Then fname = OpenFileDialog1.FileName

FileOpen(1, fname, OpenMode.Input)

Do While Not EOF(1) 'пока весь входной файл не прочитан

Input(1, s) 'считывание из файла 1 строки или части строки до запятой

RichTextBox1.Text &= s & ControlChars.CrLf 'вывод прочитанных строк в текстовое окно

'CrLf – константа, аналог chr(10) + chr(13) (символы возврата каретки и переноса строки)

Loop

FileClose(1) 'закрыть файл



End Sub

Функция EOF (filenumber) возвращает True, если достигнут конец файла с номером filenumber, и False в противном случае.

Сравните содержимое файла в Блокноте (рис. 5.5) и результат чтения файла процедурой Input (рис. 5.6).

Чтение текстового файла с помощью функции LineInput выполните самостоятельно (рис. 5.7). Сравните полученные результаты и объясните причину расхождений. В каких случаях следует использовать процедуру Input? Для какой структуры текстового файла удобнее использовать функцию LineInput?



Рис. 5.5. Содержание файла в программе Блокнот



Рис. 5.6. Текстовый файл в Блокноте и в окне RichTextBox, прочитанный методом Input



Рис. 5.7. Текстовый файл, прочитанный методом LineInput


1   2   3   4   5   6


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница