public void PrettyPrint(TheData inData, TheData outData) { Console.WriteLine($"{"--------------- inData ----------------",-40} |\t {"--------------- outData ----------------",-40}"); int fc = inData.floats.Count >= outData.floats.Count ? inData.floats.Count : outData.floats.Count; for (int i = 0; i < fc; i++) { string s1 = i < inData.floats.Count ? inData.floats[i].ToString() : "NULL NULL NULL NULL"; string s2 = i < outData.floats.Count ? outData.floats[i].ToString() : "NULL NULL NULL NULL"; Console.WriteLine($"{s1,-40} |\t {s2,-40}"); } }
public TheData readDAT(string tagsFileName, string floatsFileName) { TheData result = new TheData(); using (BinaryReader b = new BinaryReader(File.Open(tagsFileName, FileMode.Open))) { int pos = 0xA1; b.BaseStream.Seek(pos, SeekOrigin.Begin); int length = (int)b.BaseStream.Length - 1; //tagfile has a 0x1A end marker while (pos < length) { TheData.TagRow t = new TheData.TagRow(); b.ReadByte(); // 0x20 char[] c = b.ReadChars(255); t.tn = new string(c); c = b.ReadChars(5); t.ti = int.Parse(new string(c)); t.tt = int.Parse(new string(b.ReadChars(1))); t.td = int.Parse(new string(b.ReadChars(2))); result.tags.Add(t); pos += 264; } } using (BinaryReader b = new BinaryReader(File.Open(floatsFileName, FileMode.Open))) { int pos = 0x121; b.BaseStream.Seek(pos, SeekOrigin.Begin); int length = (int)b.BaseStream.Length; while (pos < length) { TheData.FloatRow f = new TheData.FloatRow(); b.ReadByte(); // 0x20 f.date = new string(b.ReadChars(8)); f.time = new string(b.ReadChars(8)); f.millitm = int.Parse(new string(b.ReadChars(3))); f.tagindex = int.Parse(new string(b.ReadChars(5))); f.value = b.ReadDouble(); f.status = b.ReadChar().ToString(); f.marker = b.ReadChar().ToString(); f.intern = b.ReadInt32(); result.floats.Add(f); pos += 39; } } return(result); }
public TheData readCSV(string inputData) { TheData data = new TheData(); using (var stream = StringStream(inputData)) using (TextFieldParser csvParser = new TextFieldParser(stream)) { csvParser.CommentTokens = new string[] { ";" }; csvParser.SetDelimiters(new string[] { "," }); while (!csvParser.EndOfData) { string[] fields = csvParser.ReadFields(); if (fields.Length == 5) { TheData.TagRow t = new TheData.TagRow(); t.tn = fields[0]; t.ti = int.Parse(fields[1]); t.tt = int.Parse(fields[2]); t.td = int.Parse(fields[3]); data.tags.Add(t); } else { TheData.FloatRow f = new TheData.FloatRow(); f.date = fields[0]; f.time = fields[1]; f.millitm = int.Parse(fields[2]); f.tagindex = int.Parse(fields[3]); f.value = double.Parse(fields[4]); f.status = fields[5]; if (String.IsNullOrEmpty(f.status)) { f.status = " "; } f.marker = fields[6]; if (String.IsNullOrEmpty(f.marker)) { f.marker = " "; } f.intern = int.Parse(fields[7]); data.floats.Add(f); } } } return(data); }
public void CreateTables(string TablePrefix, TheData data) { using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); ExecBool(conn, $"IF OBJECT_ID('{TablePrefix}TagTable', 'U') IS NOT NULL DROP TABLE [{TablePrefix}TagTable]"); ExecBool(conn, $"CREATE TABLE [{TablePrefix}TagTable] ([TagName] [nvarchar](255) NULL, [TagIndex] [smallint] NULL, [TagType] [smallint] NULL, [TagDataType] [smallint] NULL)"); foreach (var t in data.tags) { ExecBool(conn, $"INSERT INTO [{TablePrefix}TagTable] VALUES ('{t.tn}', {t.ti}, {t.tt}, {t.td})"); } ExecBool(conn, $"IF OBJECT_ID('{TablePrefix}FloatTable', 'U') IS NOT NULL DROP TABLE [{TablePrefix}FloatTable]"); ExecBool(conn, $"CREATE TABLE [{TablePrefix}FloatTable] ([DateAndTime] [datetime] NULL, [Millitm] [smallint] NULL, [TagIndex] [smallint] NULL, [Val] [float] NULL, [Status] [nvarchar] (1) NULL, [Marker] [nvarchar] (1) NULL)"); foreach (var f in data.floats) { ExecBool(conn, $"INSERT INTO [{TablePrefix}FloatTable] VALUES ('{f.date} {f.time}', {f.millitm}, {f.tagindex}, {f.value}, '{f.status}', '{f.marker}')"); } } }