Я хочу написать простую программу, которая облегчит мою жизнь на работе, но я не слишком знаком с C #, поэтому я пытаюсь прочитать документацию и некоторые примеры, но я не нахожу документацию слишком хорошей, и не могу найти ни одного примера.
У меня есть файл CSV (беспроводной датчик температуры, который иногда теряет соединение или отправляет несколько показаний в быстрой последовательности), и я хочу сравнить два DateTimes (TimeSpan) из 2 последовательных строк и в зависимости от результата удалить эту строку или добавить другую между ними. Если интервал времени между 2 датами и временем меньше 10 минут, удалите эту строку. Если оно длиннее 10 минут, создайте новую строку со временем, которое составляет 10 минут после первого. Все показания между собой кратны 10 минутам.
Файл примера:
[DelimitedRecord(","), IgnoreFirst(1)]
public class CSVDataFields{
[FieldQuoted('"')] [FieldConverter(ConverterKind.Date, "MM/dd/yyyy h:mm tt")]
public DateTime Date;
[FieldQuoted('"')]
public float Value;
}
"Date","Value"
"03/19/2019 3:10 PM","20.5"
"03/19/2019 3:10 PM","20.5"
"03/19/2019 3:10 PM","20.4"
"03/19/2019 3:20 PM","20.2"
"03/19/2019 3:50 PM","20.0"
"03/19/2019 4:00 PM","19.8"
Итак, первая проверка - [0] и [1], меньше 10, поэтому удалите эту строку, [0] и [2] меньше 10 - удалите, [0] и [3] все в порядке,
[3] и [4] длиннее 10 минут, создайте новую строку со временем ([3] + 10) и средним значением (20,2, 20,0),
new [4] и [5] длиннее 10 минут, создайте новую строку со временем ([4] + 10) и средним значением (20.1, 20.0) и т. Д.
В примере на FileHelpers.net есть только этот пример. Я думаю, что здесь вы можете получить доступ только к 1 строке за раз, в то время как мне нужно иметь доступ к 2 строкам одновременно.
private void DetectDupes(ref CSVDataFields[] csv){
foreach(CSVDataFields csvData in csv){
}
}
Я также не дошел до того, как сохранить новый файл с измененными строками.