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

Как вырезать нужные символы из строки?

Автор maxkov, 02 ноя 2011, 23:18

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

maxkov

Подскажите, как вырезать номер ТТН из данной строки: апол рмаввл, оар 456 орр матав дшвг45рмдашг ТТН 498 парпав436пмс  амм4ап паа 5"
В общем, все остальное не нужно, нужен только номер ТТН, т.е 498.

Находим слово ТТН, а дальше? Подскажите функцию?

Big Mike

Однозначно сказать сложно, т.к. не понятно, как формируется данная строка. Если допустить, что всегда есть фраза "ТТН", затем пробел, затем n-значное число, а затем снова пробел и далее фигня всякая, то да:
1. Находим "ТТН";
2. Выделяем строку с 5 знака справа от "ТТН" до конца;
3. В строке из п.2 ищем первое вхождение пробела и все что левее и будет номер ТТН.  Для уверенности в конце можно еще проверить, что в номер ттн входят только числа, и нет ни каких других символов.

NazarovS

как то так

Процедура Команда1(Команда)
   
   стр = "апол рмаввл, оар 456 орр матав дшвг45рмдашг ТТН 498 парпав436пмс  амм4ап паа 5";
   //находим первое вхождение фразы "ТТН"
   СтартСимв = найти(Нрег(стр),"ттн");
   //обрезаем строку
   стр = сред(стр, СтартСимв+4, СтрДлина(стр)-СтартСимв);
   //выбираем номер
   СтартПробел = найти(стр," ");
   НомерТТН = СокрЛП(Лев(стр,СтартПробел));
   сообщить(НомерТТН);
   
КонецПроцедуры

Skellar

еще можешь посмотреть про регулярные выражения в 1С, может поможет.

Dethmontt

Строка = "апол рмаввл, оар 456 орр матав дшвг45рмдашг ТТН 498 парпав436пмс  амм4ап паа 5";
НомерТТН = ВернутьНомерТТН(Строка," ");

Функция ВернутьНомерТТН(Строка,Разделитель)
МассивСлов = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка,Разделитель);
Если МассивСлов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
Для Счетчик=0 По МассивСлов.Количество() -1 Цикл
Если НРег(МассивСлов[Счетчик]) = "ттн" Тогда
    Возврат МассивСлов[Счетчик] +" "+МассивСлов[Счетчик+1];
КонецЕсли;
КонецФункции
КонецЦикла;

//Как вариан использовать вот такую функцию
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Строка = "апол рмаввл, оар 456 орр матав дшвг45рмдашг ТТН 498 парпав436пмс  амм4ап паа 5";
НомерТТН = ВернутьНомерТТН(Строка," ");

Функция ВернутьНомерТТН(Строка,Разделитель)
МассивСлов = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Строка,Разделитель);
Если МассивСлов.Количество() = 0 Тогда
Возврат "";
КонецЕсли;
Для Счетчик=0 По МассивСлов.Количество() -1 Цикл
Если НРег(МассивСлов"["Счетчик"]") = "ттн" Тогда
   Возврат МассивСлов"["Счетчик"]" +" "+МассивСлов"["Счетчик+1"]";
КонецЕсли;
КонецФункции
КонецЦикла;

//Как вариан использовать вот такую функцию
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск