Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 17:43

Удалить лишние пробелы

Автор malvina_l, 05 мар 2014, 14:20

0 Пользователей и 1 гость просматривают эту тему.

malvina_l

привет, подскажите пожалуйста как удалить пробелы в середине строки , например "12582   наименование" нужно удалить пробелы между кодом и наименованием начала писать запрос а дальше что- то туплю:
Запрос= Новый Запрос;
      Запрос.Текст= "ВЫБРАТЬ
      |справочник.Наименование
      | ИЗ
      | Справочник. КАК справочник
      |ГДЕ
      | справочник= &справочник";
      Результат=Запрос.Выполнить();
      Выборка=Результат.Выбрать();
      Пока выборка.Следующий() цикл
      НоваяСтрока=
         Если  Найти(Лев(наименование),5);

KrivosheevEV

Если в Наименовании только один пробел то:
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");
иначе:
ПозицияПробела = Найти(ТекущееНаименование, " ");
НовоеНаименование = Лев(ТекущееНаименование, ПозицияПробела-1) + Сред(ТекущееНаименование, ПозицияПробела + 1);

malvina_l

Цитата: KrivosheevEV от 05 мар 2014, 14:49
Если в Наименовании только один пробел то:
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");
иначе:
ПозицияПробела = Найти(ТекущееНаименование, " ");
НовоеНаименование = Лев(ТекущееНаименование, ПозицияПробела-1) + Сред(ТекущееНаименование, ПозицияПробела + 1);

вр=Сред(Наименование,6);
             Если  Лев(вр,1) = " "       тогда
                 вр=СокрЛП(вр);
                Наименование=Лев(Наименование,5)+" "+вр;
           КонецЕсли;
сделала так во внешней обработке а теперь как обратиться к наименованию справочника и перебрать все значения??

KrivosheevEV

Какие-то странные пляски с пробелом...
Наименование = ?(Наименование[6]= " ", Лев(Наименование, 5) + " " + СокрЛП(Прав(Наименование, СтрДлина(Наименование) - 6)), Наименование);

knopodav

Цитата: KrivosheevEV от 05 мар 2014, 14:49Если в Наименовании только один пробел то:
Код: [Выделить]
НовоеНаименование = СтрЗаменить(ТекущееНаименование, " ", "");

Да пофик сколько пробелов в "НовоеНаименование"! Конструкция уберёт их все.

Встроенные функции языка (Script functions)
СтрЗаменить (StrReplace)
Синтаксис:

СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Исходная строка.
<ПодстрокаПоиска> (обязательный)

Тип: Строка.
Искомая подстрока.
<ПодстрокаЗамены> (обязательный)

Тип: Строка.
Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение:

Тип: Строка.
Строка, полученная в результате замены.
Описание:

Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

LordWizard

мне одному кажется, что эта тема - ДеЖавю? :xfbnsdfb:
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

DmitriyF

а может там вообще непрерывный пробел

knopodav

Маловероятно, хотя...
НовоеНаименование = СтрЗаменить(ТекущееНаименование, Символы.НПП, "");

KrivosheevEV

Цитата: knopodav от 12 мар 2014, 10:51Да пофик сколько пробелов в "НовоеНаименование"! Конструкция уберёт их все.
Конечно, но с ситуацией, когда из двух пробелов необходимо сделать один (или из трёх - два),  конструкция не справится.

Luzer1C

 
Цитироватьконструкция не справится.
В таком случае придётся обработку запустить несколько раз.
Халамбалам.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск