1 #Region "Microsoft.VisualBasic::7a765edf1bb9fdcc491562405755fbd8, Microsoft.VisualBasic.Core\Extensions\IO\Extensions\SerializationIO.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     Module SerializationIO
35     
36     '     Function: DumpSerial, SolveListStream
37     
38     ' /********************************************************************************/
39
40 #End Region
41
42 Imports System.Drawing
43 Imports System.IO
44 Imports System.Runtime.CompilerServices
45 Imports System.Text
46 Imports Microsoft.VisualBasic.Serialization.JSON
47 Imports Microsoft.VisualBasic.Text
48
49 Public Module SerializationIO
50
51     <Extension>
52     Public Function SolveListStream(path$, Optional encoding As Encoding = NothingAs IEnumerable(Of String)
53         Select Case path.ExtensionSuffix.ToLower
54             Case """txt"
55                 Return path.IterateAllLines
56             Case "json"
57                 Return path.LoadJSON(Of String())
58             Case "xml"
59                 Return path.LoadXml(Of String())
60             Case Else
61                 Throw New NotImplementedException(path)
62         End Select
63     End Function
64
65     <Extension>
66     Public Function DumpSerial(points As IEnumerable(Of PointF), csv$, Optional encoding As Encodings = Encodings.UTF8WithoutBOM) As Boolean
67         Using writer As StreamWriter = csv.OpenWriter(encoding)
68             Call writer.WriteLine("X,Y")
69
70             For Each pt As PointF In points
71                 Call writer.WriteLine($"{pt.X},{pt.Y}")
72             Next
73         End Using
74
75         Return True
76     End Function
77 End Module