> -- Александр Ильин писал(а):
> По приведенному вами коду есть только пара замечаний по процедуре LineOnlyReceiver.ReceiveData (на всякий случай, если вы будете ее где-то применять):1. вы используете параметр len в значении "индекс байта, следующего за последним". Чтобы она этому определению соответствовала, нужно перед LOOP сделать INC(len, beg), иначе ваш код будет корректно работать только для beg = 0;2. ваш код без сбоев будет работать только при LEN(delimiter) = 1 или 2. Если delimiter = NIL (по умолчанию), будет trap при вызове LEN(delimiter). Чтобы процедура работала корректно для более длинных разделителей (3 символа и более), необходимо в конструкцию "IF k = dlen THEN" добавить следующее:Представьте, что delimiter = "aab" и вы приняли строку "aaab". Без поправки вы не заметите здесь разделителя, хотя он есть. Дело в том, что при несовпадении символов во втором WHILE i будет равно 2, а чтобы найти разделитель нужно вернуться к i = 1.

Так... спать надо больше