Начальный курс программирования на языке Форт


СРАВНЕНИЕ СТРОК - часть 2


Конечно, для быстроты определение слова

-TEXT обычно пишется в машинных кодах.: -TEXT ( a1 # а2 -- f=сравнение | полож=1>2 | отр=1<2 ) 2DUP + SWAP DО DROP 2+ DUP 2- @ I @ - DUP IF DUP ABS / LEAVE THEN 2 +LOOP SWAP DROP ;

1 Для пользующихся процессорами INTEL, DEC и Zilog. Для того чтобы выполнить такую проверку, вы должны расположить байты в обратном порядке

Слово -MATCH применяется в командах редактирования, таких, как F и S, по которым должен осуществляться поиск некоторого фрагмента в памяти, содержащей данный фрагмент. Как и в случае с

-ТEХТ, желательно, чтобы слово -MATCH было написано в машинных, кодах. Если этого сделать не удается, можете воспользоваться следующим определением высокого уровня, которое вам подойдет (для .надежности и переносимости описанные далее слова не используют такие приемы, как принудительный выход из циклов посредством EXIT, что ускорило бы их выполнение):VARIABLE 'ИСТОЧНИК ( адрес исходного фрагмента) VARIABLE ИСТОЧНИК# ( длина исходного фрагмента) VARIABLE ФЛАГ ( t=сравнвмия-не-прмоошло) : -MATCH ( d # s # -- a t=cpавнение-не-произошло) SWAP 'ИСТОЧНИК ! DUP ИСТОЧНИК# ! - DUP 0< NOT IF 1+ 0 DO 0 ФЛАГ ! 'ИСТОЧНИК @ ИСТОЧНИК# @ 0 DO OVER I + С@ OVER I С@ - IF -1 ФЛАГ ! LEAVE THEN LOOP DROP ФЛАГ @ 0= IF LEAVE THEN 1+ LOOP ФЛАГ @ THEN ;




Начало  Назад  Вперед