Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Не могу прочитать файл!!! Добавлено: 25.08.04 12:30  

Автор вопроса:  sania-tngf
Я создал файл в Word! Сохранил его как текстовый файл с нужной мне информацией. Потом его считываю из проги..
    Dim fs As New FileStream(np, FileMode.Open)
            Dim fr As New StreamReader(fs, True)
 Dim ret_ar() As String
        Dim a As String

            Do
                If (ret_ar Is Nothing) Then
                    ReDim ret_ar(0)
                Else
                    ReDim Preserve ret_ar(UBound(ret_ar) + 1)
                End If
                a = fr.ReadLine
                ret_ar(UBound(ret_ar)) = a
            Loop While (fs.Seek(0, SeekOrigin.Current) <> fs.Length)

Почему-то в результате получаеться строки с пробелами и пустые строки. Информацию игрорирует!!! Что я не так сделал?

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 25.08.04 13:42
А если прочитать файл целиком?

Dim s As String = fr.ReadToEnd()

Ответить

Номер ответа: 2
Автор ответа:
 sania-tngf



Вопросов: 16
Ответов: 21
 Профиль | | #2 Добавлено: 25.08.04 14:11
Спасибо за ответ я кажеться понял! Надо текст сохранять не в кодировке винды - студия этого почему-то не понимает а в кодировке UTF8 или 7 и поставить вот так
Dim fr As New StreamReader(fs, System.Text.Encoding.UTF8). Тогда все ОК.

Ответить

Номер ответа: 3
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #3
Добавлено: 25.08.04 14:16
Если суть вопроса была в этом, то можно любую кодировку задать...

System.Text.Encoding.Default - дефолтная кодировка Windows
System.Text.Encoding.GetEncoding(1251) - Windows-1251
System.Text.Encoding.GetEncoding(866) - DOS

А StreamReader без указания кодировки подразумевает, что файл в
7-битной кодировке ASCII. Отсюда идет замена символов кирилицы на
знаки "?".

Ответить

Номер ответа: 4
Автор ответа:
 sania-tngf



Вопросов: 16
Ответов: 21
 Профиль | | #4 Добавлено: 25.08.04 14:28
Просто почему-то дефолтная кодировка у меня не работала!!! Не вопросики были а просто ничего не было тока пробела. а символы игнорировались. Кстати вопрос не по этой теме -
 почему когда я просматриваю свойство position у FileStream постоянно одно и то же значение 1024. А потом резко меняеться и становиться равным длине файла. Причем файл в этот момент считан только на половину?

Ответить

Номер ответа: 5
Автор ответа:
 ШевТ



ICQ: 165728420 

Вопросов: 1
Ответов: 96
 Профиль | | #5 Добавлено: 04.09.04 07:29
Используй класс StreamReader и кодировку System.Text.Encoding.GetEncoding(1251)

Не используй кодировку по умолчанию. Она не работает.

И НИКОГДА не сохраняй текст Word-ом. Лучше уж блокнот... Хотя я редактирую текстовые файлы самим Visual Studio.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам