Я пытаюсь проверить файл .txt на наличие данных в начале строк, и, если вставленные данные уже существуют, спросите, нужно ли их снова вставить. Если его не существует, добавьте его. Не уверен, что будет лучшим способом. Я попытался заставить запись работать в foreach l oop (для чтения строк), но получил ошибку в использовании файла. Мои 2 способа, которые я считаю слишком обойденными, приведены ниже. Я уверен, что есть более простой способ.
public static void LogResult(String seerianumber
, String tookask
, String tulemus
, String versioon
, String toode
, String testija
, String path)
{
string str=null;
bool duplicate = false;
foreach (string line in File.ReadLines(CorrectPath(path)))
{
str = line.Split(' ')[0];
if (seerianumber == str)
{
duplicate = true;
break;
}
}
if(!duplicate)
{
using (StreamWriter sr = File.AppendText(CorrectPath(path)))
{
sr.WriteLine(ReturnParameter("format1", 1), seerianumber, tookask, tulemus, versioon, toode, DateTime.Today.ToString("dd.MM.yyyy"), DateTime.Now.ToString("HH:mm:ss"), testija);
sr.Close();
}
}
else if (MessageBox.Show("Seerianumber juba sisestatud. Kas soovid seerianumbri (" + str + ") uuesti sisestada?", "Duplikaat", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
using (StreamWriter sr = File.AppendText(CorrectPath(path)))
{
sr.WriteLine(ReturnParameter("format1", 1), seerianumber, tookask, tulemus, versioon, toode, DateTime.Today.ToString("dd.MM.yyyy"), DateTime.Now.ToString("HH:mm:ss"), testija);
sr.Close();
}
}
}
v2:
public static bool LogResult(String seerianumber
, String tookask
, String tulemus
, String versioon
, String toode
, String testija
, String path)
{
foreach (string line in File.ReadLines(CorrectPath(path)))
{
string str = line.Split(' ')[0];
if (seerianumber == str)
{
if (MessageBox.Show("Seerianumber juba sisestatud. Kas soovid seerianumbri (" + str + ") uuesti sisestada?", "Duplikaat", MessageBoxButtons.YesNo) == DialogResult.No)
return false;
else
break;
}
}
using (StreamWriter sr = File.AppendText(CorrectPath(path)))
{
sr.WriteLine(ReturnParameter("format1", 1), seerianumber, tookask, tulemus, versioon, toode, DateTime.Today.ToString("dd.MM.yyyy"), DateTime.Now.ToString("HH:mm:ss"), testija);
sr.Close();
}
return true;
}