Имя: Пароль:
1C
1С v8
Как из строки из трех слов получить строку из двух первых слов (отрезать последнее слово)
,
0 ktu78
 
28.12.15
15:25
Добрый день, скажите пожалуйста, как из строки с трех слов получить строку с двух первых слов, например есть фамилия имя отчество, а нужно получить фамилия имя. Спасибо
1 Mikeware
 
28.12.15
15:25
Взять первые два слова.
ваш КО
2 butterbean
 
28.12.15
15:26
ща начнется
3 Mikeware
 
28.12.15
15:26
(2) уже
4 Serg_1960
 
28.12.15
15:26
он сам виноват, он первый начал :)
5 ktu78
 
28.12.15
15:26
а как взять если можно в коде. спасибо
6 ДаЛадно
 
28.12.15
15:27
Отнять третье слово
7 Timon1405
 
28.12.15
15:27
нужно просто отбросить третье слово
8 ktu78
 
28.12.15
15:27
вы можете пожалуйста не острить, а хотяб подкинуть пример кода
9 Serg_1960
 
28.12.15
15:28
ТС, конфигурацию озвучь. Если ЗУП - там типовых функций  куча для этого дела.
10 mTema32
 
28.12.15
15:28
Чего, до среды не дотянем? :-)
11 ДаЛадно
 
28.12.15
15:28
Срезать справа количество символов равное длине третьего слова
12 Mikeware
 
28.12.15
15:29
(9) шо "конфигурацию"...
язык хотя бы...
13 ДаЛадно
 
28.12.15
15:29
(12) Русский вестимо
14 mTema32
 
28.12.15
15:30
(0) Млин какие же ленивые бывают люди...
// Функция "расщепляет" строку на подстроки, используя заданный
//        разделитель. Разделитель может иметь любую длину.
//        Если в качестве разделителя задан пробел, рядом стоящие пробелы
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//        игнорируются.
//        Например,
//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,
//        три из которых - пустые строки, а
//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//
//    Параметры:
//        Стр -             строка, которую необходимо разложить на подстроки.
//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.
//
//
//    Возвращаемое значение:
//        массив значений, элементы которого - подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
        Стр = СокрЛП(Стр);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = СокрЛ(Сред(Стр,Поз));
        КонецЦикла;
    Иначе
        ДлинаРазделителя = СтрДлина(Разделитель);
        Пока 1=1 Цикл
            Поз = Найти(Стр,Разделитель);
            Если Поз=0 Тогда
                МассивСтрок.Добавить(Стр);
                Возврат МассивСтрок;
            КонецЕсли;
            МассивСтрок.Добавить(Лев(Стр,Поз-1));
            Стр = Сред(Стр,Поз+ДлинаРазделителя);
        КонецЦикла;
    КонецЕсли;
    
КонецФункции // глРазложить

И не благодари.
15 Alex S D
 
28.12.15
15:30
поиск по конфе по слову "инициалы"
16 Vladal
 
28.12.15
15:30
(11) Чтобы отрезать что-то ненужное, надо сначала найти это ненужное (Почти по Простоквашино).

(0) В типовых есть функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",")

Передавай туда свою исходную строку, вторым параметром передавай пробел (или чем там слова разделены) и получай массив из слов.
17 Alex S D
 
28.12.15
15:31
(14) да за что тут благодарить. сейчас он в конец запутается
18 Vladal
 
28.12.15
15:31
(14) Может и не ленивые, а не работали с типовыми или не в курсе?
19 Mikeware
 
28.12.15
15:32
(13) в смысле, русский - 1С? :-))
ту тогда 7.7 или 8.* ?

а то можно на десятке других языков...
зы. а регулярные выражения - можно считать языком?
20 mTema32
 
28.12.15
15:33
(17) Ну чем смог, как говориться. Если не разберется - то не судьба.
21 Serg_1960
 
28.12.15
15:47
Самый примитивный пример :)

ТриСловаЧерезПробел = "Всего три слова";
ВсеСлова = СтрЗаменить(ТриСловаЧерезПробел," ",Символы.ПС);
ДваПервыхСлова = СтрПолучитьСтроку(ВсеСлова,1) + " " + СтрПолучитьСтроку(ВсеСлова,2);
22 salvator
 
28.12.15
15:49
(21) Оно подойдет для строки из 2+ слов.
23 ktu78
 
28.12.15
15:49
Ввобщем так ловите господа 4 строчки волшебного текста:

Многострочный = СтрЗаменить(НачСтрока, " ", Символы.ПС ) ;
Фамилия = СтрПолучитьСтроку(Многострочный, 1);
Имя = СтрПолучитьСтроку(Многострочный, 2);
КонСтрока = Фамилия + " " +Имя;
24 salvator
 
28.12.15
15:50
+(22) Если, конечно, они записаны через одиночный пробел.
25 aka AMIGO
 
28.12.15
15:51
(23) и чем твой код волшебнее (21)  ?
26 Mikeware
 
28.12.15
15:52
(25) на две строки больше...
27 Лефмихалыч
 
28.12.15
16:04
(0) Чен Ю Сю Игорь Петрович смотрит на тебя снихсодительно, как бы говоря: "Ну, давай"
28 Лефмихалыч
 
28.12.15
16:05
А вот Задолбеков Абдунаим Рахмет Оглы думает, что, в общем-то, может в ряде случаев и получиться, но результат будет непонятный
Закон Брукера: Даже маленькая практика стоит большой теории.