轻轻松松背单词II 词库转换器(源代码)

原理很简单,看看就懂:)
Imports System.IO
Imports System.Text
Module BDCWordConverter
    
Sub main()
        
Dim dir As New DirectoryInfo("D:\bdc\Word\")
        
Dim fi As FileInfo() = dir.GetFiles("*.gds")
        
For Each f As FileInfo In fi
            
Dim fs As New FileStream(f.FullName, FileMode.Open)
            
Dim br As New BinaryReader(fs)
            fs.Position 
= 12
            
Dim b01 As Byte() = br.ReadBytes(20)
            
ReDim Preserve b01(27)
            br.BaseStream.Position 
= 50
            
Dim b02 As Byte() = br.ReadBytes(8)
            b02.CopyTo(b01, 
20)

 
            Console.
WriteLine(f.FullName)
            
Dim fileName As String = New StringBuilder(Encoding.GetEncoding("GB2312").GetChars(b01)).ToString.TrimEnd(CChar(" "))

 
            Console.
WriteLine("Processing {0}", fileName)
            
Dim fw As New StreamWriter("D:\bdc word\" & fileName.TrimEnd(Chr(0)) & ".txt")
            
Dim startPos As Integer = 290
            
Dim offWord As Integer = 30
            
Dim offPun As Integer = 30
            
Dim offMean As Integer = 40
            
Dim offCourse As Integer = 28
            br.BaseStream.Position 
= 290

 
            
Dim Word As String
            
Dim Pun As String
            
Dim Mean As String
            
Do Until br.PeekChar = -1
                
Dim b1 As Byte() = br.ReadBytes(offWord)
                Word 
= New ASCIIEncoding().GetChars(b1)
                
Dim b2 As Byte() = br.ReadBytes(offPun)
                Pun 
= New ASCIIEncoding().GetChars(b2)
                
Dim b3 As Byte() = br.ReadBytes(offMean)
                Mean 
= New StringBuilder(Encoding.GetEncoding("GB2312").GetChars(b3)).ToString
                br.ReadBytes(offCourse)
                fw.
WriteLine("""{0}"",""{1}"",""{2}""", Word.TrimEnd(CChar(" ")), Pun.TrimEnd(CChar(" ")), Mean.TrimEnd(CChar(" ")))
            
Loop
            fs.Flush()
            fs.Close()
        
Next
    
End Sub

End Module


posted @ 2005-08-03 22:57  Dream world 梦想天空  阅读(2119)  评论(1编辑  收藏  举报