Вариант разбора строки с разделителями   

   

Однажды я столкнулся с такой задачей, как работа с файлами. Требовалось написать процедуру, которая получала бы на входе строку, содержащую полный путь к файлу и разбивала бы ее на две части: отдельно путь к папке, в которой находится файл и само наименование файла.

Первоначальные варианты с поиском последнего символа в строке показались неуклюжими, поэтому вскоре было найдено более изящное решение, основанное на возможности работы с длинными многострочными текстами, представляющими собой длинную строку, поделенную на части символами разделителя строки.

Вот эта процедура, которая получилась очень короткой:

Процедура ПолучитьИмяИПуть(ИмяФайла,Путь,Имя) Экспорт
    //(с) www.perlscript.ru
    Перем ВремСтрока;
    ВремСтрока=ИмяФайла;
    ВремСтрока=СтрЗаменить(ВремСтрока,"",РазделительСтрок);
    Имя=СтрПолучитьСтроку(ВремСтрока,СтрКоличествоСтрок(ВремСтрока));
    Путь=Лев(ИмяФайла,СтрДлина(ИмяФайла)-СтрДлина(Имя));
КонецПроцедуры

В результате преобразования строки с разделятелями к многострочному тексту, мы получаем возможность без проблем работать и с обменом данными через текстовые файлы с разделителями. Достаточно осуществить преобразование к многострочному тексту - и можно обращаться к участку строки по номеру строки многострочного текста. Таким образом, становятся ненужными сложные самописные процедуры разбора текстового файла с разделителями.

 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах").

Статья: Вариант разбора строки с разделителями

Перейти на главную страницу компании "Софтпоинт"