private static void WriteRow(StringBuilder targetText, MovementRow row) { targetText .Append(row.DateTime + ",") .Append(row.Movement + ",") .Append(row.Noise + ",") .AppendLine(); }
private static void ReadRow(string[] lines, int i, List <MovementRow> rows) { try { var reader = new Reader(); var line = lines[i]; if (!line.StartsWith("Id,")) { return; } var date = reader.GetDateTime(lines, i + 1, FromIndex).Date; var fields = line.Split(','); var lastTime = new DateTime(); for (var j = RawDataIndex; j < fields.Length; j++) { var columnName = reader.GetString(lines, i, j); if (columnName == "Event") { continue; } var time = DateTime.ParseExact(columnName, "H:mm", null); if (time < lastTime) { date = date.AddDays(1); } lastTime = time; var dateTime = date.Add(time.TimeOfDay); var row = new MovementRow(); row.DateTime = dateTime; row.Movement = reader.GetFloat(lines, i + 1, j); if (HasNoiseData(lines, i + 2, j)) { row.Noise = reader.GetFloat(lines, i + 2, j); } rows.Add(row); } } catch (Exception ex) { Console.WriteLine("ERROR: Failed to load row {0} due to the following error: /r/n {1}", i, ex.Message); } }