Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

20.5. Как можно удалить часть текста из описания?

В: Как можно удалить часть текста из описания?

О:

Если вы точно знаете, какую часть описания вам нужно удалить, и она не повторяется несколько раз, можно использовать простой алгоритм:

! запоминаем описание
local $description=$maintxt
! С помощью функции $replace заменяем полученное значение на значение с удалённой строкой
$description=$replace($description,"строка, которую хотим удалить")
! стираем основное описание
*clr
! выводим новое
*p $description

Возможно вам понадобится удалить часть описания, которая несколько раз повторяется в тексте. Тогда придётся воспользоваться более сложным алгоритмом:

! строка,которую хотим удалить
$killstr="#F92672"
! запоминаем описание
$description=$maintxt
! с помощью цикла и функции instr, определяем, с какого символа начинается вхождение
local iNum=3 ! номер вхождения, которое хотим удалить
local i=0 ! счётчик
local fromPos=0 ! с какого символа начинать поиск вхождения
local in_str=0 ! с какого символа начинается вхождение
loop while 1 step i+=1:
    in_str=instr($description,$killstr,fromPos+1)
    if i<iNum and in_str<>fromPos:
        fromPos=in_str
    else
        
! вырезаем первую часть до вхождения
        $part_1=$mid($description,1,fromPos-1)
        
! вырезаем часть после вхождения
        $part_2=$mid($description,fromPos+len($killstr))
        
! собираем новое описание
        $description=$part_1+$part_2
        jump 'end_cycle' ! прерываем цикл
    end
end
:end_cycle

! стираем основное описание
*clr
! выводим новое
*p $description