From baeabf312d401a73c7f45ec54814f9533c275b15 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Mon, 18 Nov 2019 23:55:14 -0500 Subject: [PATCH] automatically guess data type when writing value --- .../DataFormats/Database/UTF/UTFDataFormat.cs | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/CSharp/Plugins/UniversalEditor.Plugins.CRI/DataFormats/Database/UTF/UTFDataFormat.cs b/CSharp/Plugins/UniversalEditor.Plugins.CRI/DataFormats/Database/UTF/UTFDataFormat.cs index b44d8ea3..c5040b54 100644 --- a/CSharp/Plugins/UniversalEditor.Plugins.CRI/DataFormats/Database/UTF/UTFDataFormat.cs +++ b/CSharp/Plugins/UniversalEditor.Plugins.CRI/DataFormats/Database/UTF/UTFDataFormat.cs @@ -488,7 +488,7 @@ namespace UniversalEditor.Plugins.CRI.DataFormats.Database.UTF { if (columnStorageTypes[j] == UTFColumnStorageType.PerRow) { - WriteValue(bw, dt.Records[i].Fields[j].Value, columnDataTypes[j], stringTable); + WriteValue(bw, dt.Records[i].Fields[j].Value, stringTable); } } } @@ -535,6 +535,38 @@ namespace UniversalEditor.Plugins.CRI.DataFormats.Database.UTF throw new NotImplementedException(); } + private void WriteValue(Writer bw, object value, List stringTable) + { + if (value is string) + { + WriteValue(bw, value, UTFColumnDataType.String, stringTable); + } + else if (value is byte[]) + { + WriteValue(bw, value, UTFColumnDataType.Data, stringTable); + } + else if (value is long || value is ulong) + { + WriteValue(bw, value, UTFColumnDataType.Long, stringTable); + } + else if (value is int || value is uint) + { + WriteValue(bw, value, UTFColumnDataType.Int, stringTable); + } + else if (value is short || value is short) + { + WriteValue(bw, value, UTFColumnDataType.Short, stringTable); + } + else if (value is byte || value is byte) + { + WriteValue(bw, value, UTFColumnDataType.Byte, stringTable); + } + else if (value is float) + { + WriteValue(bw, value, UTFColumnDataType.Float, stringTable); + } + } + private void WriteValue(Writer bw, object value, UTFColumnDataType columnDataType, List stringTable) { switch (columnDataType)