Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 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-сайт:  
 Профиль |  | #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-сайт:  
 Профиль |  | #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.