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/