OberonCore https://forum.oberoncore.ru/ |
|
Чтение всего текста -> чтение участка [beg,end) https://forum.oberoncore.ru/viewtopic.php?f=23&t=2789 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Среда, 18 Август, 2010 10:59 ] |
Заголовок сообщения: | Чтение всего текста -> чтение участка [beg,end) |
Было несколько раз, когда переделывал команды обработки. Но только сейчас в голову пришло, что достаточно дополнить каждое чтение коррекцией eot, не трогая остального. Код: rd.Read; rd.eot := rd.eot OR (end < rd.Pos())
|
Автор: | Евгений Темиргалеев [ Пятница, 02 Сентябрь, 2011 11:57 ] |
Заголовок сообщения: | Re: Чтение всего текста -> чтение участка [beg,end) |
Вариации на организацию чтения участка [beg, end) 1) постусловие rd.Read: ~rd.eot => rd.Pos() = rd'.Pos() + 1 Код: rd.SetPos(beg); rd.Read; WHILE ~rd.eot & (rd.Pos() <= end) DO ... rd.Read END 2) с дополнительной переменной "длина" можно без rd.Pos() Код: len := end - beg; rd.SetPos(beg);
WHILE len > 0 DO rd.Read; ... DEC(len) END |
Автор: | maliya [ Вторник, 18 Март, 2014 08:39 ] |
Заголовок сообщения: | Re: Чтение всего текста -> чтение участка [beg,end) |
for [beg,end), just: Код: rd.SetPos(beg);
WHILE rd.Pos() < end DO rd.Read; .. END |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |