Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт май 19, 2022 10:01

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - *удалить вертикальный блок из текста
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
Код:
: del-block { a u x y dx dy \ at yt -- a u }
  a TO at u 0
  DO I a + C@ 0xA =
     IF yt y y dy + WITHIN
        IF at x + dx +  at x +  u at x + a - - MOVE
           dx NEGATE R@ + RP@ !
        THEN
        a I 1+ + TO at yt 1+ TO yt
     THEN
     yt 1+ y dy + >
     IF LEAVE THEN
  LOOP a u dy dx * - ;


\ EOF

: cr!
  S" 0x0A0D SWAP 2R@ DROP + W!" EVALUATE ; IMMEDIATE

: s1
  S" 01234..56789..ABCDRTTY..RWRWRT.."
\         5      12        22      30
  2>R 5 cr! 12 cr! 22 cr! 30 cr! 2R>  ;


s1 TYPE CR

s1 1 1 2 3 del-block  TYPE


LOG
Код:
01234
56789
ABCDRTTY
RWRWRT

01234
589
ADRTTY
RWRT

Ok
Сообщение Добавлено: Вт апр 06, 2010 16:50
  Заголовок сообщения:  *удалить вертикальный блок из текста  Ответить с цитатой
дано: в памяти по указанному адресу находится текстовый блок, включающий в себя некоторое количество строк в ISO кодировке(т.е. размер символа фиксирован и равен одному байту). В явном виде заданы адрес начала блока и его длина. Каждая строка отделена от следующей символом(символами) перевода строки. Необходимо удалить из текста прямоугольный блок, заданный начальной строкой и начальной позицией в строке, начиная с которой будет вырезаться текстовый блок, а так же количество строк и количество символов, которые необходимо вырезать из текста. В случае, если заданный размер блока выходит за пределы текстового блока, удалять только существующие символы в строке и строки в тексте.

\ удалить вертикальный блок из текста
\ вернуть адрес начала и длину результирующего текста
: del-block ( pos-x pos-y #x #y addr # --> addr # )
;
Сообщение Добавлено: Сб апр 03, 2010 10:28

Часовой пояс: UTC + 3 часа [ Летнее время ]


cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB