Запись в массив с проверкой - C#
Формулировка задачи:
Здравствуйте, не могу понять как записать в массив каждую из строк текстового файла с остановкой записи в случае и ее возобновлении на заданной точке в случае возникновения какой-либо ошибки, текстовый файл имеет структуру
1 10.11.12 4000
2 20.07.14 5000
3 14.05.10 8000
4 05.06.09 3000
разделить пробел, при этом необходимо предать элемент массива , а массивом должна выступать каждая строка в стороннюю программу.
Решение задачи: «Запись в массив с проверкой»
textual
Листинг программы
static void ReadStringFromFile()
{
FileStream fs = null;
FileStream fsCounter = null;
StreamWriter swCounter = null;
string str;
string[] ar = new string[0];
int count;
try
{
fs = new FileStream("test.txt", FileMode.Open);
fsCounter = new FileStream("count.txt", FileMode.Open);
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
}
//Проверим, было ли что-то передано ранее, если да, то count=x
StreamReader srCouner = new StreamReader(fsCounter);
try
{
count = int.Parse(srCouner.ReadLine());
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
count = 0;
}
finally
{
srCouner.Close();
}
StreamReader sr = new StreamReader(fs);
try
{
//Если было передано, то пропускаем это количество строк
if(count > 0)
{
for (int i = 0; i < count; i++)
{
str = sr.ReadLine();
}
}
while ((str = sr.ReadLine()) != null)
{
//теперь откроем файл счётчика для записи
swCounter = new StreamWriter("count.txt", false);
Array.Resize(ref ar, ar.Length + 1);
ar[ar.Length - 1] = str;
count += 1;
swCounter.Write(count.ToString());
swCounter.Close();
}
}
catch (IOException ex)
{
Console.WriteLine(ex.Message);
}
finally
{
sr.Close();
swCounter.Close();
}
foreach (string s in ar)
{
Console.WriteLine(s);
}
Console.ReadKey();
}