Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 удалить слово из текста  [new]
Maksim99
Guest
Вот такая проблема у же многое перепробывал не идет в голову.... есть оприделенный текст и нужно удалить из этого текста к примеру 3, 5, 7, 10 слово.... подскажите...

Не большой пример текста."или начала текущего курсора. Функция принимаетодно
из следующих значений.0 – находимся в пределах курсора,"
24 сен 09, 14:13    [7703170]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36805
Поток сознания с кучей орфографических и пунктуационных ошибок.
24 сен 09, 14:15    [7703195]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Glory
Member

Откуда:
Сообщений: 104760
Maksim99
Вот такая проблема у же многое перепробывал не идет в голову.... есть оприделенный текст и нужно удалить из этого текста к примеру 3, 5, 7, 10 слово.... подскажите...

Случайным образом удалить ?
24 сен 09, 14:15    [7703197]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
"принимаетодно" - одно слово или два?
--------------------------------------------------------------
Дьявол кроется в деталях.
24 сен 09, 14:15    [7703201]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Maksim99
Guest
Glory,

можно случайным главно чтоб удалялось только те слова которые нужно например 3-е слово удалить текст оставить....
24 сен 09, 14:19    [7703244]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Glory
Member

Откуда:
Сообщений: 104760
Maksim99
Glory,

можно случайным главно чтоб удалялось только те слова которые нужно например 3-е слово удалить текст оставить....

Понятия "случайные" и "те, которые нужно" вообще то неравнозначны.
Т.к. какое слово вам нуджно удалять - случайное или 3-ее ?
24 сен 09, 14:23    [7703272]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Maksim99
Guest
не только те которые нужно....))
24 сен 09, 18:27    [7705288]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4255
Maksim99
не только те которые нужно....))


дак вот их и удаляйте, в чем проблема-то?
24 сен 09, 20:34    [7705672]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Maksim99
не только те которые нужно....))
Это надо понимать как
Maksim99
не, только те которые нужно....))
или
Maksim99
не только те, которые нужно....))
?

Maksim99, предлагаю:
1. разделить строку на слова,
2. разместить слова по одному на строках с порядковыми номерами,
3. собрать строку обратно из пронумерованных строк, но без номеров 3, 5, 7, 10.
24 сен 09, 21:30    [7705781]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
europ
Member

Откуда:
Сообщений: 377
Maksim99,

Предлагаю разделить вашу строку на слова так, чтобы на одно слово была одна строка в таблице, потом удалить "нужные" строки, т.е. слова, и склеить по необходимости. Приведу пример как это можно сделать, но там строка состоять должна только из цифр. Вы немного переделаете и вперед =)
CREATE FUNCTION [dbo].[GetTableByWords](@txt text)
RETURNS @tbl TABLE ([id] int PRIMARY KEY IDENTITY (1, 1) NOT NULL, [val] bigint)
AS
BEGIN
DECLARE
	@lst int,
	@num varchar(8000),
	@ost varchar(8000),
	@k int

	Set @num = ''
	Set @lst = 1

	WHILE @lst <= datalength(@txt)
	BEGIN
		IF (@lst + 8000) > datalength(@txt) SET @ost = SUBSTRING(@txt, @lst, datalength(@txt) - @lst + 1)
		Else SET @ost = SUBSTRING(@txt, @lst, 8000)
		Set @lst = @lst + 8000

		Set @k = CHARINDEX(' ', @ost)
		IF @k = 0
			SELECT @num = @num + @ost, @ost = ''
		ELSE
			SELECT @num = @num + LEFT(@ost, @k - 1), @ost = RIGHT(@ost, datalength(@ost) - @k)

		WHILE @k > 0
		BEGIN
			IF ISNUMERIC(@num)=1
			INSERT INTO @tbl (val)
			VALUES (convert(bigint, @num))

			Set @k = CHARINDEX(' ', @ost)
			IF @k = 0
				SELECT @num = @ost, @ost = ''
			ELSE
				SELECT @num = LEFT(@ost, @k - 1), @ost = RIGHT(@ost, datalength(@ost) - @k)
		END
	END

	IF ISNUMERIC(@num)=1
	INSERT INTO @tbl (val)
	VALUES (convert(bigint, @num))

	RETURN
END


25 сен 09, 09:50    [7706691]     Ответить | Цитировать Сообщить модератору
 Re: удалить слово из текста  [new]
nrg_fly
Member

Откуда:
Сообщений: 138
Maksim99
Вот такая проблема у же многое перепробывал не идет в голову.... есть оприделенный текст и нужно удалить из этого текста к примеру 3, 5, 7, 10 слово.... подскажите...

Не большой пример текста."или начала текущего курсора. Функция принимаетодно
из следующих значений.0 – находимся в пределах курсора,"


как подсказывает здравый разум, проще будет определиться со знаками, какие разделяют слова (пробел, точки, запятые и т.д.), а потом постепенно переходить по этим знакам и определять местоположение N слова для его последующего удаления.
25 сен 09, 10:14    [7706790]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить