Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2017, 22:22   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
        static void Main(string[] args)
        {
            int skipAmount = 0;
            if (args.Length > 0)
                int.TryParse(args[0], out skipAmount);
            foreach(var line in File.ReadLines("file.txt").Skip(skipAmount))
            {
                string[] one = line.Split(';');
                Console.WriteLine("N = {0} Date = {1} Value = {2}", one[0], one[1], one[2]);
            }
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
допустим как-то так. вашей утилите должно быть передано количество строк для пропуска через параметр командной строки.
можете заменить чтение из иного места если надо и сохранять если надо.

Serge_Bliznykov, не надо переводить массив в строку через Add.
есть AddRange, этот метод оптимизированный для коллекций с известным размером.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 01.09.2017, 09:46   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Serge_Bliznykov, не надо переводить массив в строку через Add.
спасибо. я в C# не гуру, инфа полезная.
Но, простите, а где я перевожу массив в строку через add ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.09.2017, 10:43   #13
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
спасибо. я в C# не гуру, инфа полезная.
Но, простите, а где я перевожу массив в строку через add ?
Видимо имелся ввиду этот кусок:
Код:
foreach (string tmp in File.ReadAllLines("test.txt")) {
			         	lists.Add(tmp);
			         }
List - это не список таки, а массив. При добавлении поэлементно List потенциально будет перезаполняться, т.к. будет не хватать выделенной памяти. Или просто перед заполнением установить свойство Capacity равным или больше количества добавляемых элементов или сразу пользовать AddRange, в котором это уже сделано.
lists.AddRange(File.ReadAllLines("t est.txt")) и меньше телодвижений будет со всех сторон.
pu4koff вне форума Ответить с цитированием
Старый 01.09.2017, 11:19   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
List - это не список таки, а массив.
т.е. как это?

Цитата:
Код:
List<string> lists = new List<string>();
			foreach (string tmp in File.ReadAllLines("test.txt")) {
			         	lists.Add(tmp);
			         }
Разве List - это массив? или Вы имеете в виду реализацию List внутри?


Цитата:
Сообщение от pu4koff Посмотреть сообщение
lists.AddRange(File.ReadAllLines("t est.txt")) и меньше телодвижений будет со всех сторон.
хорошо. спасибо.

честно говоря, я вообще не понимаю, зачем нужен этот цикл.
на мой взгляд проще:
Код:
string[] readText = File.ReadAllLines(@"test.txt");
и никакие AddRange не нужны
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.09.2017, 13:41   #15
Asew
Пользователь
 
Регистрация: 29.08.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:

                int.TryParse(args[0], out skipAmount);
не пойму смысл этой строки в текущем контексте. Получается что скипается только первая строка чтоли?

Последний раз редактировалось Asew; 01.09.2017 в 13:52.
Asew вне форума Ответить с цитированием
Старый 01.09.2017, 13:57   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Asew Посмотреть сообщение
не пойму смысл этой строки в текущем контексте. Получается что скипается только первая строка чтоли?
нет, Вы действительно не поняли.

эта строчка для того, чтобы
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вашей утилите должно быть передано количество строк для пропуска через параметр командной строки.

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
if (args.Length > 0) // если в командной строке есть аргументы
                int.TryParse(args[0], out skipAmount); // то в переменную skipAmount записать число, переданное в командной строке первым параметром
а пропустить нужное число строк - это вот тут:

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
File.ReadLines("file.txt").Skip(skipAmount)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.09.2017, 14:02   #17
Asew
Пользователь
 
Регистрация: 29.08.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
нет, Вы действительно не поняли.

эта строчка для того, чтобы




а пропустить нужное число строк - это вот тут:
это общий случай наверное, можно так сказать ) в моем случае я знаю сколько изначально надо пропустить строк и это число константовое, соответственно первая часть кода пропускается
Asew вне форума Ответить с цитированием
Старый 01.09.2017, 14:03   #18
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
т.е. как это?


Разве List - это массив? или Вы имеете в виду реализацию List внутри?
List - это что-то вроде std::vector из плюсов. Суть та же - "авторасширяющийся" массив. Я не понимаю только почему его List назвали, т.к. он ближе к массиву, а к списку, как структуре данных, вообще отношения не имеет. LinkedList - вот это нормальный двусвязный список.
pu4koff вне форума Ответить с цитированием
Старый 01.09.2017, 14:34   #19
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Asew Посмотреть сообщение
в моем случае я знаю сколько изначально надо пропустить строк и это число константовое, соответственно первая часть кода пропускается
это уже ваше дело, откуда эту переменную брать и пропускать строчки в файле или нет.


Цитата:
Сообщение от pu4koff Посмотреть сообщение
List - это что-то вроде std::vector из плюсов. Суть та же - "авторасширяющийся" массив.
понял Вас. Спасибо.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.09.2017, 15:21   #20
Asew
Пользователь
 
Регистрация: 29.08.2017
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
        static void Main(string[] args)
        {
            int skipAmount = 0;
            if (args.Length > 0)
                int.TryParse(args[0], out skipAmount);
            foreach(var line in File.ReadLines("file.txt").Skip(skipAmount))
            {
                string[] one = line.Split(';');
                Console.WriteLine("N = {0} Date = {1} Value = {2}", one[0], one[1], one[2]);
            }
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
допустим как-то так. вашей утилите должно быть передано количество строк для пропуска через параметр командной строки.
можете заменить чтение из иного места если надо и сохранять если надо.

Serge_Bliznykov, не надо переводить массив в строку через Add.
есть AddRange, этот метод оптимизированный для коллекций с известным размером.

Ошибка CS1061 'IEnumerable<string>"
Asew вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из файла в массив IGOR199304 PHP 4 26.07.2013 23:44
массив из файла Арианна Помощь студентам 12 22.05.2012 22:54
Массив из файла sixS Паскаль, Turbo Pascal, PascalABC.NET 1 21.10.2011 22:33
Массив из файла veleg PHP 1 16.10.2011 12:29
из файла в массив Arcueid1691 Общие вопросы C/C++ 4 01.06.2009 01:00