Я разрабатываю тестовое приложение с использованием C# и .NET. Я программист (встроенный), но не очень хорошо знаком с этой средой. Я создал приложение, которое собирает данные датчиков с Arduino и использует FileHelpers API для заполнения списка данных для экспорта в CSV.
// Initializing Log generation
FileHelperEngine<logItems> engine = new FileHelperEngine<logItems>();
List<logItems> logItems = new List<logItems>();
И событие сохранения журнала
private void stopButton_Click(object sender, EventArgs e)
{
tmrGUI.Enabled = false; // Stop sampling
double maxValue = pressureTable.Max();
PeakValueIndicator.Text = maxValue.ToString("0.00");
engine.HeaderText = "Sample,Pressure,Time";
engine.WriteFile(string.Concat(DateTime.Now.ToString("yyyyMMdd_HHmmss"), "_", TestNameControl.Text, ".csv"), logItems);
logGenerator();
TestNameControl.Text = string.Empty;
startButton.Enabled = false;
stopButton.Enabled = false;
Приложение работает, однако, если я запускаю сбор данных более одного раза, не закрывая программу между запусками, оно добавит новые данные датчика в конец предыдущего списка данных. Есть ли способ сбросить список с помощью FileHelpers API или сброса памяти с помощью обычного C#?
WriteFile
не добавляет, он перезаписывает, так что, как говорит gnud, вероятно, вам нужно будет рассмотреть управление списком.
Да, ты прав! Я исправил это с помощью logItems.Clear();
в соответствии с вашими предложениями. Спасибо
Вы хотите очистить список перед «сбором данных» или после записи его на диск? В любом случае, запишите
logItems.Clear();
в том месте, где вы хотите удалить старые записи журнала.