Имя: Пароль:
1C
 
Как выделить подстроку из строки
0 Глупый дятел
 
18.11.09
13:44
Есть строка типа "Счет № 6-2656 от 17.11.2009"
надо выделить "6-2656" то есть от "№" до "от" все взять. Как это лучше сделать?
1 butterbean
 
18.11.09
13:45
что значит "взять" и "выделить" в твоем понимании??
2 Нуф-Нуф
 
18.11.09
13:45
Найти и сред
3 Глупый дятел
 
18.11.09
13:46
надо чтобы переменная была равна подстроке
4 Нуф-Нуф
 
18.11.09
13:46
Встроенные функции языка.Найти (Script functions.Find)
Встроенные функции языка (Script functions)
Найти (Find)
Синтаксис:
Найти(<Строка>, <Подстрока поиска>)
Параметры:
<Строка> (обязательный)
Тип: Строка. Исходная строка.
<Подстрока поиска> (обязательный)
Тип: Строка. Искомая подстрока.
Возвращаемое значение:
Тип: Число. Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.
Описание:
Находит вхождение искомой строки как подстроки в исходной строке.
Пример:
Если Найти(Сотрудник.Имя, "Борис") > 0 Тогда
   Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;





Встроенные функции языка (Script functions)
Сред (Mid)
Синтаксис:
Сред(<Строка>, <Начальный номер>, <Число символов>)
Параметры:
<Строка> (обязательный)
Тип: Строка. Исходная строка.
<Начальный номер> (обязательный)
Тип: Число. Начальный номер символа, с которого начинается выборка. Нумерация символов в строке начинается с 1.
<Число символов> (необязательный)
Тип: Число. Количество выбираемых символов. Если параметр не указан, то выбираются символы до конца строки.
Возвращаемое значение:
Тип: Строка. Строка выбранных символов.
Описание:
Выбирает строку символов, начиная с символа <Начальный номер>, общим количеством <Число символов>.
Пример:
// Пусть номер автомобиля в справочнике основных средств задается
// в виде х999хх99, где последние две цифры - код региона.
// Получим цифровую часть номера.
ЦифрыНомера = Сред(ОсновноеСредство.ГосНомер, 2, 3);
5 zbv
 
18.11.09
13:46
+ (2) и СокрЛП()

так на всякий случай...
6 ZIPKs
 
18.11.09
13:47
я конечно могу написать... но это вообще основы алгоритмирования и программирования.. в данном случае можно спросить операторы
(4) подрабатываешь СП
7 FIXXXL
 
18.11.09
13:47
Если Найти(ТекстФ, "Фамилия: ") Тогда
       НачСимволФамилия = Найти(ТекстФ, "Фамилия: ");
       КонСимволФамилия = Найти(ТекстФ, "Адрес E-mail: ");
       ФамилияКонтрагента = СтрокаСБольшойБуквы(СокрЛП(Сред(ТекстФ, НачСимволФамилия+9, КонСимволФамилия-(НачСимволФамилия+9))));
   КонецЕсли;
8 Aprobator
 
18.11.09
13:47
в чем проблема? Определить позиции № и ОТ и получить строку между ними?
9 Глупый дятел
 
18.11.09
13:48
(7)
Спасибо
10 Mitriy
 
18.11.09
13:48
УстановитьГраницыВыделения
11 Mitriy
 
18.11.09
13:49
не угадал...
12 TheNewOne
 
18.11.09
13:51
Можно так попробовать.

НомерСчета = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрСчет, " ")[2];

Или так

СписокШтуковин = Новый СписокЗначений;
СписокШтуковин.ЗагрузитьЗначения(ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрСчет, " "));
ИндексОт = СписокШтуковин.Индекс(СписокШтуковин.НайтиПоЗначению("от"));
НомерСчета = СписокШтуковин[ИндексОт-1].Значение;