Bootstrap

using vb.net read unix style text file

Unix text file uses linefeed only to indicate end of line, the .net streamreader's readline function is not working with unix text file.

I made a small wrapper for StreamReader class to make it is working with unix format.

At first, I created a class

ExpandedBlockStart.gif代码

Imports  System.IO

Public   Class  StreamReaderUnix
    
Inherits  streamreader
    
Sub   New ( ByVal  filename  As   String )
        
MyBase .New(filename)
    
End Sub

    
Public   Function  ReadLine( ByVal  unixStyle  As   String As   String
        
Dim  intByte  As   Integer
        
Dim  bteRead()  As   Byte

        
Dim  mybuffer( 1 As   Char
        
Dim  lineFeedLocation  As   Integer
        
Dim  aLine  As   String   =   String .Empty 

        
If  unixStyle  =   ""   Then
            
MyBase .ReadLine()
        
Else  
            
Do   While   Not  intByte  =   - 1
                intByte 
=   MyBase .Read(mybuffer,  0 1 )
                
If  intByte  <>   - 1   Then
                    lineFeedLocation 
=  Array.IndexOf(mybuffer,  CChar (vbLf))
                    
If  mybuffer( 0 =   CChar (vbLf)  Then
                        
Return  aLine
                    
ElseIf  mybuffer( 0 =   CChar (vbCr)  Then
                        
' doing nothing
                     Else
                        aLine 
=  aLine  &  mybuffer( 0 )
                    
End   If
                
End   If
            
Loop
        
End   If  
    
End Function
End Class

 

 

Below is the sample code to use this class

 

Dim  oRead  As  StreamReaderUnix
oRead 
=   New  StreamReaderUnix( " sample.txt " )
Dim  lineIn  As   String
While  oRead.Peek  <>   - 1
   lineIn 
=  oRead.ReadLine( " unix " )
   
MsgBox (lineIn)
End   While

 

 

转载于:https://www.cnblogs.com/yangbin990/archive/2010/03/22/1691499.html

;