Поделиться через


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

Обновлен: Ноябрь 2007

На этом занятии вы узнаете, как в Visual Basic выполнять чтение из текстового файла с помощью объекта Объект My.Computer.FileSystem.

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

Основные сведения о файлах

Прежде чем выполнять чтение из текстового файла, ознакомьтесь со следующей информацией. Объект My в Visual Basic упрощает работу с файлами. Чтение из файлов на компьютере можно выполнять с помощью метода Метод My.Computer.FileSystem.ReadAllText объекта Объект My.Computer.FileSystem.

Текстовые файлы, которые содержат строки, разделенные запятыми, называются текстовыми файлами с разделителями-запятыми. Каждый элемент в таком текстовом файле называется полем. Для чтения содержимого файла с разделителями-запятыми можно использовать метод Метод My.Computer.FileSystem.OpenTextFieldParser.

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

Bb384499.alert_note(ru-ru,VS.90).gifПримечание.

В Windows XP предусмотрены специальные папки с именами "Мои документы", "Мои рисунки" и "Моя музыка". В Windows Vista имена этих папок не содержат слова "Мои"; они называются просто "Документы", "Рисунки" и "Музыка". Однако код, о котором идет речь в этом занятии, будет выполняться и в Windows XP, и в Windows Vista.

Практическое задание

Чтение из файла с разделителями-запятыми

  1. Откройте проект приложения для просмотра рисунков из предыдущего урока. Если он еще не закончен, перейдите к занятию Запись в текстовый файл и завершите его, а затем возвращайтесь к данному заданию.

  2. В Обозревателе решений выберите Form1.vb, а затем в меню Вид выберите Конструктор.

  3. Добавьте элемент управления Button в форму рядом с кнопкой Добавить в избранное.

  4. Измените следующие свойства этой кнопки.

    Свойство

    Значение

    Имя

    LoadFavorites

    Текст

    Загрузить избранное

    Размер

    85, 23

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

  6. В обработчике событий LoadFavorites_Click добавьте следующий код для очистки содержимого списка и поля рисунка. Если предварительно не очистить список, путь к файлу и его имя будут добавляться в этот список каждый раз при нажатии кнопки Загрузить избранное.

    ' Clear the picture box and the list box.
    Me.ListBox1.Items.Clear()
    Me.PictureBox1.ImageLocation = ""
    
  7. Добавьте следующий оператор If, чтобы проверить наличие текстового файла FavoritePictures. Если он отсутствует, необходимо проинформировать пользователя, что файл не существует.

    Dim FavoritePictures As String = _
     My.Computer.FileSystem.SpecialDirectories.MyDocuments _
     & "\FavoritePictures.txt"
    If My.Computer.FileSystem.FileExists(FavoritePictures) Then
    
        ' Add code to read text from a file.
    
    Else
        MsgBox("There is no favorites file yet. Click Load" _
          & " Pictures," & vbCrLf & "select a picture, and" _
          & " then click Add to Favorites.", MsgBoxStyle.OkOnly, _
          "Picture Viewer")
    End If
    
  8. Замените комментарий между операторами If и Else следующим кодом. Этот код использует метод OpenTextFieldParser для чтения содержимого файла FavoritePictures.txt. Затем он указывает, что разделителем текста является запятая.

    ' Open the FavoritePictures text file by using
    ' OpenTextFieldParser.
    Dim MyReader As Microsoft.VisualBasic.FileIO.TextFieldParser
    MyReader = My.Computer.FileSystem.OpenTextFieldParser( _
        FavoritePictures)
    MyReader.SetDelimiters(",")
    
  9. Добавьте следующий код ниже кода, добавленного в предыдущем шаге. Этот код просматривает поля в текстовом файле, а затем проверяет каждый файл на существование перед его добавлением в элемент управления ListBox. Затем он закрывает TextFieldParser.

    ' Using a comma (,) as a delimeter, parse each field in 
    ' the text file and add it to the list box.
    Dim textFields As String() = MyReader.ReadFields()
    For Each currentField As String In textFields
       If My.Computer.FileSystem.FileExists(currentField) Then
            Me.ListBox1.Items.Add(currentField)
       End If
    Next
    
    ' Close the TextFieldParser.
    MyReader.Close()
    
  10. Нажмите клавишу F5 для запуска кода.

  11. Нажмите кнопку Загрузить избранное для загрузки файлов, указанных в файле FavoritePictures.txt.

  12. Выберите элемент в списке, чтобы просмотреть соответствующий рисунок в приложении для просмотра.

Следующие действия

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

Следующее занятие: Удаление текстового файла

См. также

Задачи

Получение имен файлов, содержащихся в папке

Запись в текстовый файл

Другие ресурсы

Использование файловой системы. Чтение из файлов и запись в файлы

Интерактивный учебник по Visual Basic