Чтение из текстового файла
Обновлен: Ноябрь 2007
На этом занятии вы узнаете, как в Visual Basic выполнять чтение из текстового файла с помощью объекта Объект My.Computer.FileSystem.
В предыдущем занятии, Запись в текстовый файл, описывается способ добавления в приложение для просмотра рисунков функции, которая позволяет сохранять названия любимых изображений в текстовый файл. Следующим шагом является чтение из текстового файла. Эта возможность позволяет просматривать только любимые изображения.
Основные сведения о файлах
Прежде чем выполнять чтение из текстового файла, ознакомьтесь со следующей информацией. Объект My в Visual Basic упрощает работу с файлами. Чтение из файлов на компьютере можно выполнять с помощью метода Метод My.Computer.FileSystem.ReadAllText объекта Объект My.Computer.FileSystem.
Текстовые файлы, которые содержат строки, разделенные запятыми, называются текстовыми файлами с разделителями-запятыми. Каждый элемент в таком текстовом файле называется полем. Для чтения содержимого файла с разделителями-запятыми можно использовать метод Метод My.Computer.FileSystem.OpenTextFieldParser.
В этой процедуре перед попыткой загрузки выбранного текстового файла выполняется проверка с целью убедиться в том, что он существует в папке Документы. Если данный файл не существует, приложение выведет соответствующее сообщение.
Примечание. |
---|
В Windows XP предусмотрены специальные папки с именами "Мои документы", "Мои рисунки" и "Моя музыка". В Windows Vista имена этих папок не содержат слова "Мои"; они называются просто "Документы", "Рисунки" и "Музыка". Однако код, о котором идет речь в этом занятии, будет выполняться и в Windows XP, и в Windows Vista. |
Практическое задание
Чтение из файла с разделителями-запятыми
Откройте проект приложения для просмотра рисунков из предыдущего урока. Если он еще не закончен, перейдите к занятию Запись в текстовый файл и завершите его, а затем возвращайтесь к данному заданию.
В Обозревателе решений выберите Form1.vb, а затем в меню Вид выберите Конструктор.
Добавьте элемент управления Button в форму рядом с кнопкой Добавить в избранное.
Измените следующие свойства этой кнопки.
Свойство
Значение
Имя
LoadFavorites
Текст
Загрузить избранное
Размер
85, 23
Дважды щелкните новый элемент управления Button, чтобы добавить обработчик событий по умолчанию в редакторе кода.
В обработчике событий LoadFavorites_Click добавьте следующий код для очистки содержимого списка и поля рисунка. Если предварительно не очистить список, путь к файлу и его имя будут добавляться в этот список каждый раз при нажатии кнопки Загрузить избранное.
' Clear the picture box and the list box. Me.ListBox1.Items.Clear() Me.PictureBox1.ImageLocation = ""
Добавьте следующий оператор 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
Замените комментарий между операторами 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(",")
Добавьте следующий код ниже кода, добавленного в предыдущем шаге. Этот код просматривает поля в текстовом файле, а затем проверяет каждый файл на существование перед его добавлением в элемент управления 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()
Нажмите клавишу F5 для запуска кода.
Нажмите кнопку Загрузить избранное для загрузки файлов, указанных в файле FavoritePictures.txt.
Выберите элемент в списке, чтобы просмотреть соответствующий рисунок в приложении для просмотра.
Следующие действия
На этом занятии вы узнали, как выполнить чтение текстового файла с разделителями-запятыми и добавить в список каждый элемент в файле. На следующем занятии вы узнаете, как удалить этот текстовый файл из папки "Документы".
Следующее занятие: Удаление текстового файла
См. также
Задачи
Получение имен файлов, содержащихся в папке
Другие ресурсы
Использование файловой системы. Чтение из файлов и запись в файлы