8.х Как разделить предложение по словам?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем SashaBorandi, 4 апр 2008.

  1. TopicStarter Overlay
    SashaBorandi
    Offline

    SashaBorandi

    Регистрация:
    4 апр 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Помогите мне с прогаммированием... Я начинающий...

    Допустим есть:

    Наименование = "Кайгородова Ольга Сергеевна";
    //Фимилие =
    //Имя =
    //Отчество =


    Мне нужно Разделить "Наименование" по частям и присвоить эти значения к "Фамилия", "Имя", "Отчество". Тоисть чтоб конечный результат был:

    Фимилие = Кайгородова
    Имя = Ольга
    Отчество = Сергеевна
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    В типовых конфигурациях есть функция РазложитьСтрокуВМассивПодстрок() - используйте ее, если пишете отчет для типовой конфигурации, или же посмотрите ее код, если хотите использовать ее в своей разработке.
  3. TopicStarter Overlay
    SashaBorandi
    Offline

    SashaBorandi

    Регистрация:
    4 апр 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    В этом и заключается проблема... То что у меня неустановлено ни одной типовых конфигураций, а разрабатываю я с постой конфигурации....
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Хм, если позволяет совесть и инетрнет - nowa.cc настоятельно рекомендую обзавестись типовыми, т.к. при обучении часто будет нужно посмотреть, как оно сделано.
    Украдено из УПП:
    Код:
    // Функция "расщепляет" строку на подстроки, используя заданный 
    //        разделитель. Разделитель может иметь любую длину. 
    //        Если в качестве разделителя задан пробел, рядом стоящие пробелы 
    //        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
    //        игнорируются.
    //        Например, 
    //        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, 
    //        три из которых - пустые строки, а 
    //        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
    //
    //    Параметры: 
    //        Стр -             строка, которую необходимо разложить на подстроки. 
    //                        Параметр передается по значению.
    //        Разделитель -     строка-разделитель, по умолчанию - запятая.
    //
    //
    //    Возвращаемое значение:
    //        массив значений, элементы которого - подстроки
    //
    Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
    
    МассивСтрок = Новый Массив();
    Если Разделитель = " " Тогда
    Стр = СокрЛП(Стр);
    Пока 1=1 Цикл
    Поз = Найти(Стр,Разделитель);
    Если Поз=0 Тогда
    МассивСтрок.Добавить(Стр);
    Возврат МассивСтрок;
    КонецЕсли;
    МассивСтрок.Добавить(Лев(Стр,Поз-1));
    Стр = СокрЛ(Сред(Стр,Поз));
    КонецЦикла;
    Иначе
    ДлинаРазделителя = СтрДлина(Разделитель);
    Пока 1=1 Цикл
    Поз = Найти(Стр,Разделитель);
    Если Поз=0 Тогда
    МассивСтрок.Добавить(Стр);
    Возврат МассивСтрок;
    КонецЕсли;
    МассивСтрок.Добавить(Лев(Стр,Поз-1));
    Стр = Сред(Стр,Поз+ДлинаРазделителя);
    КонецЦикла;
    КонецЕсли;
    
    КонецФункции // глРазложить
    
    
  5. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Код:
    Строки = СтрЗаменить(СокрЛП(ИсходнаяСтрока), " ", Символы.ПС);
    Фамилия = Строки[0];
    Имя= Строки[1];
    Отчество= Строки[2];
    
    
    Это если разделитель - не более одного пробела. Иначе можно тоже быстр оразделить, доработав код :)
  6. v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Помогите пожалуйста начинающему
    у меня вот такой год по разделению
    Код:
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать("D:\111.txt");
    
    Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
    СтрокиФайла = Текст.ПолучитьСтроку(НомерСтроки);
    
    Строки = СтрЗаменить(СокрЛП(СтрокиФайла), " ", Символы.ПС);
    Сообщить (строки);
    
    
    
    КонецЦикла;
    
    
    
    в итоге
    Иванов
    Андрей
    Юрьевич

    А если
    Код:
    Сообщить (Строки[2]);
    
    Ошибка

    {Обработка.Обработка1.Форма.Форма(11)}: Получение элемента по индексу для значения не определено
    Сообщить (строки[0]);
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    lazy же приводил пример.
    Код:
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать("D:\111.txt");
    
    Для НомерСтроки = 1 По Текст.КоличествоСтрок() Цикл
    СтрокаФайла = Текст.ПолучитьСтроку(НомерСтроки);
    
    Строки = РазложитьСтрокуВМассивПодстрок(СтрокаФайла, "  ");
    Сообщить (Строки[0]);
    Сообщить (Строки[1]);
    Сообщить (Строки[2]);
    КонецЦикла;
    
  8. v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Доброй ночи.
    А подскажите пожалуйста, вот такой вопрос:
    Как очистить этот текстовой документ 111.txt

    Код:
    Текст.Очистить();
    Текст.Записать();
    
    не помогает,
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    Текст.УстановитьТекст("");
    
    ?
  10. v0233
    Offline

    v0233 Опытный в 1С

    Регистрация:
    23 авг 2010
    Сообщения:
    167
    Симпатии:
    0
    Баллы:
    26
    Что то тоже не получилось,
    Добавил
    Текст.Записать();
    пишет ошибку "не достаточно фактических параметров"
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    нужно указать имя файла....

Поделиться этой страницей