Запись в массив с проверкой - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д