Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 27.10.2016, 00:05   #1
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Адрес: Не важно
Сообщений: 733
Репутация: -78
По умолчанию Многопоточный stremreader

Есть, к примеру txt в котором есть текст построчно записанный(строки все одинаковой длинны), возможно ли многими "кусками" считывать этот текст, то есть первый стримридер считал строки от 1 до 50 строки, второй стримридер от 51 до 100-ой, потом снова первый от 101-ой до 150-ой строки ? Я не говорю про основы языка....
komra2 вне форума   Ответить с цитированием
Старый 27.10.2016, 00:22   #2
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,004
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

а для одного потока вы можете написать метод чтоб читал по 50 строк ?
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 27.10.2016, 00:26   #3
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Адрес: Не важно
Сообщений: 733
Репутация: -78
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а для одного потока вы можете написать метод чтоб читал по 50 строк ?
Для одного могу(один поток один весь документ), без проблем, но мне надо дать десятки интервалов для одного, пока не знаю, как ну я писал же уже
такой код натыкал: а как сделать то о чем спрашивал ?
Код:
foreach (var result in
            from first in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\1.txt").Take(50)
            select string.Concat(first))
            Console.WriteLine(result);
            Console.ReadKey();

Последний раз редактировалось komra2; 27.10.2016 в 01:15.
komra2 вне форума   Ответить с цитированием
Старый 27.10.2016, 01:17   #4
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,004
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

вы читаете первые 50, а не каждые 50.

а вы уверены что вам надо эти по 50, причем строго подряд?
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 27.10.2016, 01:31   #5
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Адрес: Не важно
Сообщений: 733
Репутация: -78
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
вы читаете первые 50, а не каждые 50.

а вы уверены что вам надо эти по 50, причем строго подряд?
я прекрасно знаю что я написал, не дурак совсем надо бы первые 50 потом вторые 50 читает следующий file.readalllines, и потом снова 150-200 строки читает первый, если написать так типа:
File.ReadAllLines(path).Take(50).Sk ip(50).Take(50).Skip(50), "Take" можно юзать только один раз, а скип скок угодно...
иными словами надо так:
1-й:50,
2-й:пропускает 50 строк и берёт следующие 50 строк, точно, а может быть с цикле сделать... на счет цикла только щяс додумался..
мне надо чтобы как-то Take можно было юзать многократно)))

Последний раз редактировалось komra2; 27.10.2016 в 01:39.
komra2 вне форума   Ответить с цитированием
Старый 27.10.2016, 02:22   #6
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,004
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

Цитата:
надо бы первые 50 потом вторые 50 читает следующий file.readalllines, и потом снова 150-200 строки читает первый, если написать так типа:
и итого вы не можете даже в одном потоке прочитать по 50 строк...куда ж вы в потоки то полезли.
и для каждых 50-ти строк будете перечитывать файл с начала...ужастно.

самое банальное, это защитите ваше чтение через lock, потом залочился, прочел 50 строк(for, никаких foreach или Take), вышел их lock'а и пошел молотить, и так пока файл не кончится.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 27.10.2016, 02:33   #7
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Адрес: Не важно
Сообщений: 733
Репутация: -78
По умолчанию

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

Последний раз редактировалось komra2; 27.10.2016 в 02:40.
komra2 вне форума   Ответить с цитированием
Старый 27.10.2016, 02:46   #8
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,004
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

у вас в принципе цикл тут.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Старый 27.10.2016, 02:53   #9
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Адрес: Не важно
Сообщений: 733
Репутация: -78
По умолчанию

да, угу, но как тогда пропустить 50 строк, цикл идет потом пропускает строки
komra2 вне форума   Ответить с цитированием
Старый 27.10.2016, 03:18   #10
Пепел Феникса
Модератор
Заслуженный модератор
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Адрес: Москва
Сообщений: 21,004
Репутация: 3436

icq: 446843180
skype: phoenix_proger
По умолчанию

если у вас есть пропуски, значит вы снова перечитываете файл.

вы вообще читаете мои ответы?

вы не переоткрываете файл, вы читаете подряд.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточный curl nibufep PHP 2 05.04.2015 20:46
Режимы компиляции Многопоточный MT и Многопоточный DLL vasiatka Общие вопросы C/C++ 5 20.02.2014 19:56
c#. Многопоточный сервер tiger Помощь студентам 1 13.09.2012 13:24
многопоточный сервер мандарин Работа с сетью в Delphi 6 24.04.2007 07:22
Многопоточный Ping Квэнди Работа с сетью в Delphi 0 18.12.2006 16:01


03:20.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.