Browse Source

fixed csv block data

master
jkpete 5 months ago
parent
commit
d6b3d938f4
  1. 51
      addons/EGFramework/Module/SaveTools/EGCsvSave.cs
  2. 6
      addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs
  3. 1
      addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

51
addons/EGFramework/Module/SaveTools/EGCsvSave.cs

@ -1,5 +1,7 @@ @@ -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 @@ -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<string[]> 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<string[]> GetCSVDataBlockFromText(string text,out string[] header){
List<string[]> csvBlock = new List<string[]>();
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<TData>(string dataKey, TData data, object id)
@ -21,11 +59,6 @@ namespace EGFramework @@ -21,11 +59,6 @@ namespace EGFramework
{
throw new NotImplementedException();
}
public IEnumerable<TData> QueryData<TData>(string dataKey, string sql) where TData : new()
{
throw new NotImplementedException();
}
public IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new()
{
throw new NotImplementedException();
@ -36,4 +69,10 @@ namespace EGFramework @@ -36,4 +69,10 @@ namespace EGFramework
throw new NotImplementedException();
}
}
public class CsvParamAttribute: Attribute{
public CsvParamAttribute(string name){
}
}
}

6
addons/EGFramework/Module/SaveTools/EGLiteDBSave.cs

@ -60,12 +60,6 @@ namespace EGFramework @@ -60,12 +60,6 @@ namespace EGFramework
return collection.Find(expression);
}
public IEnumerable<TData> QueryData<TData>(string dataKey, string sql="") where TData : new()
{
LiteCollection<TData> collection = (LiteCollection<TData>)Database.GetCollection<TData>(dataKey);
return collection.FindAll();
}
}
}

1
addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs

@ -21,6 +21,5 @@ namespace EGFramework @@ -21,6 +21,5 @@ namespace EGFramework
TData GetData<TData>(string dataKey,object id) where TData : new();
IEnumerable<TData> GetAll<TData>(string dataKey) where TData : new();
IEnumerable<TData> FindData<TData>(string dataKey,Expression<Func<TData, bool>> expression) where TData : new();
IEnumerable<TData> QueryData<TData>(string dataKey,string sql) where TData : new();
}
}
Loading…
Cancel
Save