Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Построчное чтение файла


Автор: Machaon 16.9.2008, 18:05
Необходимо построчно читать текстовый файл но почемуто функция Open вызывает ошибку можно пример как читать.

Автор: diadiavova 16.9.2008, 19:31
Если речь идёт о классах System.IO.File или System.IO.FileInfo попробуй функцию OpenText (она есть у обоих классов). Возвращает объект StreamReader у которого есть функции типа ReadLine и т. д.

Добавлено через 11 минут и 8 секунд
Кстати, для чтения текстового файла вообще надо использовать System.IO.StreamReader. Можно создать при помощи конструктора. Только не забывай закрывать его после использования(метод Close), а то потом к файлу не будет доступа.

Автор: Machaon 17.9.2008, 00:13
Можно примерчик  smile  как читать в массив и в ListBox

Автор: diadiavova 17.9.2008, 01:09
В массив прочитать проще так
Код

Dim lineArray() As String = System.IO.File.ReadAllLines("Имя файла")


А загнать в листбокс думаю такой код прокатит
Код

MyListBox.Items.AddRange(lineArray)

MyListBox - это собсно листбокс, а lineArray - то же, что и вверху.

В работе код не пробовал, так что если что не так - стучи, разберёмся.

Автор: Machaon 17.9.2008, 02:19
Во терь все понятно спс.

Автор: Machaon 17.9.2008, 03:23
Только вот беда руский текст неподдерживат как кодировку поменять то ?

Автор: diadiavova 17.9.2008, 10:57
Функция ReadAllLines - перегружена. Есть вариант с кодировкой. Например тебе надо загрузить текст в кодировке Windows-1251 делаешь примерно так
Код

Dim enc As System.Text.Encoding=System.Text.Encoding.GetEncoding(1251)
Dim lineArray() As String = System.IO.File.ReadAllLines("Имя файла", enc)


Кстати в классе System.Text.Encoding есть открытая функция GetEncodings, возвращающая массив поддерживаемых кодировок. Изучив их свойства можно узнать коды для их создания или создать инструмент для выбора кодировки (комбобокс какой-нибудь, или что-то в том же роде).

Автор: Machaon 29.9.2008, 16:02
Спасибо.

Автор: bugmenot 19.5.2009, 20:11
diadiavova а как можно определить кодировку txt файла не читая его дважды? Например прочитав одир раз в отображении ListView подправить её.

Автор: diadiavova 19.5.2009, 21:47
Сам текстовый файл такой информации не несёт. Некоторые программы определяют кодировку при помощи собственных алгоритмов. Обычно для этого берётся часть текста, и в разных кодировках проверяется наличие слов известных программе языков. Встроенных механизмов в дотнете для этого нет(на сколько мне известно).

Автор: bugmenot 20.5.2009, 00:50
diadiavova, спасибо за ответ.
Прийдётся два раза читать: первый раз прочитать и как Ворд предпросмотр показывать с выбором возможных кодировок, опираясь как ты уже подсказал на GetEncodings. Или по умолчанию читать всё в ANSI и опцыонально предлагать через интерфейс проги прочитать в другой кодировке.

Автор: diadiavova 20.5.2009, 00:53
Если по-русски написано, то по умолчанию лучше "Windows-1251", ИМХО - используется чаще других.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)