From fc2ee4cd26823ca9d22d234a64cacd9c615d5629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=93=E3=81=AE=E4=B8=AD=E4=BA=8C=E7=97=85=E3=81=AB?= =?UTF-8?q?=E7=88=86=E7=84=94=E3=82=92=EF=BC=81?= Date: Fri, 15 Sep 2023 20:06:25 +0800 Subject: [PATCH] read/write index --- src/LINQ/LINQ/test/resourceTest.vb | 6 ++++++ src/LINQ/LINQ/test/test.vbproj | 3 ++- src/LINQ/RQL/Resource.vb | 13 +++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/LINQ/LINQ/test/resourceTest.vb diff --git a/src/LINQ/LINQ/test/resourceTest.vb b/src/LINQ/LINQ/test/resourceTest.vb new file mode 100644 index 0000000..0aa4370 --- /dev/null +++ b/src/LINQ/LINQ/test/resourceTest.vb @@ -0,0 +1,6 @@ +Module resourceTest + + Sub Main() + + End Sub +End Module diff --git a/src/LINQ/LINQ/test/test.vbproj b/src/LINQ/LINQ/test/test.vbproj index d21a6f7..53fe393 100644 --- a/src/LINQ/LINQ/test/test.vbproj +++ b/src/LINQ/LINQ/test/test.vbproj @@ -44,7 +44,7 @@ On - test.Program + test.resourceTest true @@ -89,6 +89,7 @@ + diff --git a/src/LINQ/RQL/Resource.vb b/src/LINQ/RQL/Resource.vb index 924ef0a..13fa710 100644 --- a/src/LINQ/RQL/Resource.vb +++ b/src/LINQ/RQL/Resource.vb @@ -15,6 +15,7 @@ Public Class Resource : Implements IDisposable Sub New(res As StreamPack) buf = res + index = New IndexReader(res.OpenFile("/index.dat", FileMode.OpenOrCreate, FileAccess.Read)).Read End Sub Public Function Add(key As String, data As Byte()) As Boolean @@ -63,6 +64,18 @@ Public Class Resource : Implements IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not disposedValue Then If disposing Then + Using ms As New MemoryStream + Call New IndexWriter(ms).Write(index) + Call ms.Flush() + Call ms.Seek(Scan0, SeekOrigin.Begin) + + Dim file As Stream = buf.OpenFile("/index.dat", FileMode.OpenOrCreate, FileAccess.Write) + + Call file.Write(ms.ToArray, Scan0, ms.Length) + Call file.Flush() + Call file.Dispose() + End Using + ' TODO: 释放托管状态(托管对象) Call buf.Dispose() End If