Перейти к основному содержимому

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