Develop and Download Open Source Software

Browse Subversion Repository

Contents of /ShogiNextMove/KifuDataDirectoryReader.vb

Parent Directory Parent Directory | Revision Log Revision Log


Revision 76 - (show annotations) (download)
Mon Feb 22 06:48:06 2016 UTC (8 years ago) by bellyoshi
File size: 2551 byte(s)


1 Public Class KifuDataDirectoryReader
2
3 Private kifu As New Board.Kifu.Kifu
4
5 Public ReadOnly Property CurrentKyokumen As Board.Kyokumen
6 Get
7 Return kifu.KyokumenList(_kifuIndex)
8 End Get
9 End Property
10
11 Public ReadOnly Property Moving As Board.Te
12 Get
13 Return kifu.MoveList(_kifuIndex)
14 End Get
15 End Property
16
17 Public ReadOnly Property hasMove As Boolean
18 Get
19 Return _kifuIndex < kifu.MoveList.Count
20 End Get
21 End Property
22
23 Private _dirname As String
24 Public ReadOnly Property dirName As String
25 Get
26 Return _dirname & "\KifuData\"
27 End Get
28 End Property
29
30 Public ReadOnly Property Count As Integer
31 Get
32 Return _file.Count
33 End Get
34 End Property
35
36
37 Public Sub New()
38
39 Dim exeName As String = System.Reflection.Assembly.GetEntryAssembly().Location
40 _dirname = System.IO.Path.GetDirectoryName(exeName)
41 _file = System.IO.Directory.GetFiles(dirName, "*.csa", System.IO.SearchOption.TopDirectoryOnly)
42 _fileIndex = 0
43
44 End Sub
45
46 Public Sub Write(ByVal kifu As Board.Kifu.Kifu, filename As String)
47 Dim writer As New Board.Kifu.CSAKifuWriter
48 Dim kifStr As String = writer.MakeKifuCSAString(kifu)
49 Using sw As New System.IO.StreamWriter(filename, False, System.Text.Encoding.GetEncoding("shift_jis"))
50 sw.Write(kifStr)
51 End Using
52 End Sub
53
54 Dim _file As String()
55 Dim _fileIndex As Integer
56 Dim _kifuIndex As Integer
57
58 Public Sub readNextFile()
59 Debug.Assert(_fileIndex < _file.Length)
60 Using sr As New System.IO.StreamReader(_file(_fileIndex), _
61 System.Text.Encoding.GetEncoding("shift_jis"))
62 Dim kifuStr As String = sr.ReadToEnd()
63 kifu = (New Board.Kifu.CSAKifuReader).ReadCSAString(kifuStr)
64 End Using
65 _fileIndex += 1
66 _kifuIndex = 0
67 End Sub
68
69 Public Function hasNextFile() As Boolean
70 If _fileIndex < _file.Length Then
71 Return True
72 End If
73 Return False
74 End Function
75
76 Public Function hasNextKyokumen() As Boolean
77 If _kifuIndex < kifu.KyokumenList.Count - 1 Then
78 Return True
79 End If
80 Return False
81 End Function
82
83 Public Function NextKyokumen() As Board.Kyokumen
84 _kifuIndex += 1
85 Return CurrentKyokumen
86 End Function
87
88
89 End Class

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26