8.х Чтение строки

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

  1. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    Всем привет!
    Например есть строка
    Код:
    <v8e:UserName>Иванов Иван Иванович</v8e:UserName>
    
    из неё нужно только Иванов Иван Иванович вытащить.
    Подскажите пожалуйста как это лучше сделать, функции лев, сред думаю не подойдут, так как в процедуре в цикле эта строка будет менять ФИО.
    спасибо.
  2. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Так это сильно смахивает на XML. Вам нужно разбирать не строку, а весь текст. Т.е. Создать объект ЧтениеXML, а затем начать его обрабатывать (можно посмотреть примеры в любой стандартной конфигурации). Что-то вроде:

    Код:
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл(ИмяФайла);
    Пока ЧтениеXML.Прочитать() Цикл
    .....
    Попытка
    ФИО = ЧтениеXML.ЗначениеАтрибута("UserName");
    Исключение
    
    КонецПопытки;
    .......
    КонецЦикла;
    
    
    А конкретно нужно решать исходя из структуры Вашего файла.
  3. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    с ЧтениемХМЛ не особо получилось
    я делаю с помощью ЧтениеТекста(), тоже нормально.
    но вот как написать "общий" код именно вот для такой строки, где ФИО будет меняться...не знаю ((
  4. Senya
    Offline

    Senya Опытный в 1С

    Регистрация:
    6 июн 2006
    Сообщения:
    594
    Симпатии:
    0
    Баллы:
    26
    Ну так ищете ">" и "</" и то что между ними и будет ФИО.
    P.S. Но, русское ИМХО, лучше использовать парсер и работать с текстом как c XML (это в общем то тоже текст).
    Успехов.
  5. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    спасибо. попробую искать ">" и "</"
  6. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Еще можно так
    Код:
    РазобраннаяСтрока = СтрЗаменить(ИсходнаяСтрока,">",Символы.ПС);
    РазобраннаяСтрока = СтрЗаменить(РазобраннаяСтрока,""</"",Символы.ПС);
    
    ФИО = СтрПолучитьСтроку(РазобраннаяСтрока,2);
    
    
    
  7. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    так и сделала спасибо!!

    Код:
    			  аг = СтрЗаменить(пр, "</v8e:UserName>", "");
    ага = СокрЛП(аг);
    
    вернее так:


    Код:
    аг = СтрЗаменить(пр, "</v8e:UserName>", "");
    ага = СокрЛП(аг);
    
    блин...................

    в первых кавычках строка </v8e:UserName>

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