Урок 32. Работа с текстовыми файлами

Урок из серии: «Программирование на Visual Basic.NET для школьников»

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

Для чтения и записи текстового файла будут использоваться новые классы StreamReader и StreamWriter из библиотеки .NET Framework.

Проект «Работа с файлами»

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

Для ввода и вывода информации использовать текстовые поля.

  1. Запустите Visual Studio, создайте новый проект с именем Работа с файлами. Visual Studio добавит проект в Обозреватель решений, и откроется Конструктор Windows Forms.
  2. Добавьте в форму элементы управления Надпись (Label), текстовое поле (TextBox), две кнопки (Button).Visual Basic.Net Работа с текстовыми файлами
  3. Измените значения свойств в соответствии с таблицей.
    Объект Свойства Значение
    Form1 Text Работа с файлами
    Label1 Text Введите текст записи:
    TextBox1 Text
    Multiline
    Entry
    Пусто
    False
    True
    Button1 Text Сохранить запись
    Button2 Text Очистить запись

Создание текстового файла

  1. В меню Вид выберите Код, чтобы открыть редактор кода.
  2. Для записи в файл предназначен класс объектов StreamWriter из пространства имен System.IO. Поэтому необходимо добавить следующие операторы в самом начале кода, перед объявлением класса формы, которое начинается с Public Class Form1.

    Imports System

    Imports System.IO

  3. Перед записью в файл необходимо создать экземпляр класса StreamWriter. Для этого достаточно в обработчике события присвоить значение соответствующей переменной.В меню Вид выберите Конструктор чтобы вернуться в окно Конструктор Windows Forms.Создайте обработчик событий Click  кнопки Button1 (Сохранить) и добавьте следующий код.
        Dim fw As StreamWriter
            Dim ReadString As String
            Try
                'Путь к файлу указан в StreamWriter конструкторе.
                'Для  параметра append установлено значение True, так что файл не будет перезаписан.
                fw = New StreamWriter("D:\Test1.txt", True)
                ReadString = TextBox1.Text
                fw.WriteLine(ReadString)
            Finally
            'Очистить поле
            TextBox1.Text = ""            
            'Закрыть файл.
                fw.Close()
            End Try

    Не стоит беспокоиться о том, что возникнет исключение, если файла не существует, т. к. в этом случае он будет создан автоматически.

  4. Чтобы убедиться, что пользователь не сможет отправить пустую запись, можно добавить следующий код сразу после Dim ReadString As String.
    If (TextBox1.Text = "" Or TextBox1.Text = "Введите произвольный текст.") Then
                TextBox1.Text = "Введите произвольный текст."
                Return
    End If
  5. Создайте обработчик события Click для кнопки Очистить, добавьте в него код, очищающий элемент управления TextBox.
    TextBox1.Text = ""
  6. Чтобы проверить работоспособность кода, запустите проект. В текстовое поле введите свои фамилию и имя.  Нажмите кнопку сохранить.Затем введите название проекта, нажмите сохранить. И наконец, введите текущую дату и время, нажмите Сохранить.В текстовый файл должен записаться текст, состоящий из этих трех строк. Чтение этих строк из файла выполним в следующем задании.
  7. Сохраните проект

Отображение текстового файла с помощью объекта текстового поля

Простейшим способом отображения в программе текстового файла является использование объекта TextBox (текстовое поле). Можно создать объекты текстового поля различного размера. Если содержимое текстового файла не помещается в текстовое поле, можно добавить к текстовому полю полосы прокрутки так, что пользователь сможет увидеть весь текст.

  1. Добавим в форму текстовое поле TextBox2 для отображения текстового файла и командную кнопку Button3 с надписью «Отобразить содержимое текстового файла».Visual Basic.NET Работа с файлами
  2. Настроим свойства в соответствии с таблицей.
    Элемент управления Свойства Значения
    TextBox2 Visible
    Multiline
    ScrollBars
    Text
    False
    True
    Both
    пустой
    Button3 text Показать содержимое текстового файла
  3. Добавьте программный код в обработчик события Click  кнопки Button3 (Показать текстовый файл).
     
    Dim fr As StreamReader
    fr = New StreamReader("D:\Test1.txt")
    Dim ReadString As String
    ReadString = ""
    Dim FileString As String 
      Do
        'Считываем строку из файла в переменную FileString.
         FileString = fr.ReadLine
         'добавляем к ReadString
         ReadString = ReadString & ControlChars.CrLf & FileString
      Loop Until (FileString = Nothing)
      fr.Close()
      TextBox2.Visible = True
      TextBox2.Text = ReadString
  4. Для чтения из файла используется  экземпляр класса StreamReader. Для этого в программном коде  объявляется переменная fr.
  5. В цикле построчно считываются записи из файла в переменную FileString и добавляются в конец текста ReadString с помощью операции конкатенация.В модуле ControlChars содержатся константы, используемые в качестве управляющих символов,
    CrLf соответствует Chr(13) + Chr(10) — сочетанию знаков возврата каретки и перевода строки.
  6. Можно обойтись без цикла, если использовать метод ReadToEnd, который получает из файла весь текст, начиная с текущей позиции (начало текстового фала) и до конца этого файла. В строке кода полученное значение присваивается переменной ReadText.
    ReadString = StreamToDisplay.ReadToEnd
  7. С помощью последних операторов закрывают текстовый файл,  делают видимым текстовое поле и изменяют значение свойства Text текстового поля на значение переменной ReadText.
  8. Чтобы удостовериться в работоспособности кода, нажмите клавишу F5 для компиляции приложения, а затем кнопку Показать текстовый файл. В текстовом поле в центральной части окна отобразится содержимое текстового файла.

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

Следующий урок: Массивы.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии