Ребят, вот просто решил написать простенькую "прогу", но не могу побороть простую ошибку.
Задача:
прочитать файл в котором содержатся только числа(одно число на строчку), эти самые числа нужно потом записать в массив(кол-во строк в файле зарание не известно). Я делаю так: сначала считаю кол-во строк в файле и создаю массив с этим размером. потом читаю файл ещё раз построчно и записываю данные в массив, но почемуто первая строка в нём не появляется , а только со второй, да ещё последний элемент всегда 0
помогите пожалуйста найти ошибку. вот код:
| Код | using System; using System.IO;
namespace s11._a {
public class Input { static void Main(string[] args) { int counter = 0; string filename = "otput.txt"; string filename1 = "input.txt";
foreach (string arg in args) // считает строки { Console.WriteLine("==>{0}", arg); try { TextReader tr = (TextReader)File.OpenText(arg); string ln = tr.ReadLine(); while (ln != null) { counter++; ln = tr.ReadLine(); } tr.Close(); Console.WriteLine(counter); } catch (Exception e) { Console.WriteLine("Error: no such file or file can not be open"); } }
int[] array1 = new int[counter]; //тут создаём массив //foreach (string arg in filename1) // пытаемся наполнить массив //{ Console.WriteLine("Filling array with int's from " + filename1); try { TextReader tr1 = (TextReader)File.OpenText(filename1); int ii=0; string ln = tr1.ReadLine(); string tmp = ""; int ia = 0; while ((tmp = tr1.ReadLine()) != null)//Вот тут как раз и происходит считывание построчно, и тут-же видимо ошибка. { int.TryParse(tmp, out ii); //string to int array1[ia] = ii; ia++; } tr1.Close(); Console.WriteLine("done"); } catch (Exception e) { Console.WriteLine("Error: no such file or file can not be open"); Console.ReadKey(); }
// }
foreach (int ee in array1) // для проверки содержимого массива { Console.WriteLine(ee); } } } }
|
|