Ignore:
Timestamp:
Nov 9, 2008, 2:21:49 PM (15 years ago)
Author:
イグトランス (egtra)
Message:

#161完了。StreamReaderのUnicode対応。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/Classes/System/Xml/XmlDocument.ab

    r497 r655  
    9595    /*!
    9696    @brief  指定したストリームからXML文書を読み込む。
     97    @param  reader 読み込むリーダ。
     98    */
     99    Virtual Sub Load( reader As System.IO.TextReader )
     100        This.RemoveAll()
     101        ActiveBasic.Xml.Parser.Parse( reader.ReadToEnd(), This )
     102    End Sub
     103
     104    /*!
     105    @brief  指定したストリームからXML文書を読み込む。
    97106    @param  stream 読み込み先のストリーム。
    98107    */
    99108    Virtual Sub Load( inStream As System.IO.Stream )
    100         Dim length = inStream.Length As DWord
    101         Dim xmlBuffer = calloc( length + 1 ) As *Char
    102         inStream.Read( xmlBuffer As *Byte, 0, length )
    103         inStream.Close()
    104         Dim xmlString = New String( xmlBuffer )
    105         free( xmlBuffer )
    106 
    107         This.RemoveAll()
    108         ActiveBasic.Xml.Parser.Parse( xmlString, This )
     109        Load( New System.IO.StreamReader( inStream ) )
    109110    End Sub
    110111
     
    114115    */
    115116    Virtual Sub Load( filename As String )
    116         Dim fileStream As System.IO.FileStream( filename, System.IO.FileMode.Open, System.IO.FileAccess.Read )
    117         Load( fileStream )
     117        Dim r = New System.IO.StreamReader( filename )
     118        Load( r )
     119        r.Dispose()
    118120    End Sub
    119121
     
    123125    */
    124126    Virtual Sub Save( outStream As System.IO.Stream )
    125         Dim xmlStr = InnerXmlSupportedIndent( True )
    126         outStream.Write( xmlStr.StrPtr As *Byte, 0, xmlStr.Length * SizeOf( Char ) )
    127         outStream.Close()
     127        Dim writer = New IO.StreamWriter( outStream )
     128        Save( writer )
     129        writer.Flush()
    128130    End Sub
    129131
     
    133135    */
    134136    Virtual Sub Save( filename As String )
    135         Dim fileStream As System.IO.FileStream( filename, System.IO.FileMode.Create, System.IO.FileAccess.Write )
    136         Save( fileStream )
     137        Dim w = New IO.StreamWriter( filename )
     138        Save( w )
     139        w.Dispose()
    137140    End Sub
    138141
     
    142145    */
    143146    Virtual Sub Save( writer As System.IO.TextWriter )
    144         writer.Write(InnerXmlSupportedIndent( True ))
     147        writer.Write( InnerXmlSupportedIndent( True ) )
    145148    End Sub
    146149End Class
Note: See TracChangeset for help on using the changeset viewer.