From d6b3d938f4f39ff6f7e7948e081b5279334c3ce1 Mon Sep 17 00:00:00 2001 From: jkpete <1031139173@qq.com> Date: Fri, 4 Oct 2024 18:42:55 +0800 Subject: [PATCH] fixed csv block data --- .../EGFramework/Module/SaveTools/EGCsvSave.cs | 51 ++++++++++++++++--- .../Module/SaveTools/EGLiteDBSave.cs | 6 --- .../Module/SaveTools/SaveToolsInterface.cs | 1 - 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/addons/EGFramework/Module/SaveTools/EGCsvSave.cs b/addons/EGFramework/Module/SaveTools/EGCsvSave.cs index 31506df..98704e9 100644 --- a/addons/EGFramework/Module/SaveTools/EGCsvSave.cs +++ b/addons/EGFramework/Module/SaveTools/EGCsvSave.cs @@ -1,5 +1,7 @@ using System; +using System.Collections; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; @@ -8,9 +10,45 @@ namespace EGFramework { public class EGCsvSave : IEGSaveData, IEGSave { + public Encoding StringEncoding { set; get; } = Encoding.UTF8; + private string DefaultPath { set; get; } + private IEnumerable CsvDataBlock { get; set; } + private string[] CsvDataHeader; + private string ReadText { set; get; } public void InitSaveFile(string path) { - throw new NotImplementedException(); + + } + + public void ReadDataBlock(string path){ + try + { + FileStream fileStream = new FileStream(path,FileMode.Open); + byte[] buffer = new byte[fileStream.Length]; + fileStream.Read(buffer, 0, (int)fileStream.Length); + fileStream.Close(); + ReadText = StringEncoding.GetString(buffer); + } + catch (System.Exception e) + { + Godot.GD.Print("e:" + e); + throw; + } + if(ReadText != null || ReadText != ""){ + CsvDataBlock = GetCSVDataBlockFromText(ReadText,out CsvDataHeader); + } + } + public IEnumerable GetCSVDataBlockFromText(string text,out string[] header){ + List csvBlock = new List(); + string[] lineData = text.Split('\n'); + header = lineData[0].Split(','); + for (int lineID = 0; lineID < lineData.Length; lineID++) + { + if (lineID!=0){ + csvBlock.Add(lineData[lineID].Split(',')); + } + } + return csvBlock; } public void SetData(string dataKey, TData data, object id) @@ -21,11 +59,6 @@ namespace EGFramework { throw new NotImplementedException(); } - public IEnumerable QueryData(string dataKey, string sql) where TData : new() - { - throw new NotImplementedException(); - } - public IEnumerable GetAll(string dataKey) where TData : new() { throw new NotImplementedException(); @@ -36,4 +69,10 @@ namespace EGFramework throw new NotImplementedException(); } } + + public class CsvParamAttribute: Attribute{ + public CsvParamAttribute(string name){ + + } + } } \ No newline at end of file diff --git a/addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs b/addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs index ef949d6..8f59939 100644 --- a/addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs +++ b/addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs @@ -60,12 +60,6 @@ namespace EGFramework return collection.Find(expression); } - public IEnumerable QueryData(string dataKey, string sql="") where TData : new() - { - LiteCollection collection = (LiteCollection)Database.GetCollection(dataKey); - return collection.FindAll(); - } - } } \ No newline at end of file diff --git a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs index 75c54a8..cccc949 100644 --- a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs +++ b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs @@ -21,6 +21,5 @@ namespace EGFramework TData GetData(string dataKey,object id) where TData : new(); IEnumerable GetAll(string dataKey) where TData : new(); IEnumerable FindData(string dataKey,Expression> expression) where TData : new(); - IEnumerable QueryData(string dataKey,string sql) where TData : new(); } } \ No newline at end of file