helpf.pro
Регистрация
 0 
Распечатать

Как обрезать строку до заданой длины или дополнить ее символами, если длина ее меньше заданой?

Код 1C v 8.х
 // Функция Дополняет переданную в качестве первого параметра строку символами слева\справа до заданной длины и возвращает ее
// Незначащие символы слева и справа удаляются
// По умолчанию функция добавляет строку нулями слева
//
// Параметры:
// Строка - Строка - исходная строка, которую необходимо дополнить символами до заданной длины
// ДлинаСтроки - Число - требуемая конечная длина строки
// Символ - Строка - (необязательный) значение символа, которым необходимо дополнить строку
// Режим - Строка - (необязательный) [Слева|Справа] режим добавления символов к исходной строке: слева или справа
//
// Пример 1:
// Строка = "1234"; ДлинаСтроки = 10; Символ = "0"; Режим = "Слева"
// Возврат: "0000001234"
//
// Пример 2:
// Строка = " 1234 "; ДлинаСтроки = 10; Символ = "#"; Режим = "Справа"
// Возврат: "1234######"
//
// Возвращаемое значение:
// Строка - строка, дополненная символами слева или справа
//

Функция ДополнитьСтроку(Знач Строка, Знач ДлинаСтроки, Знач Символ = "0", Знач Режим = "Слева") Экспорт

Если ПустаяСтрока(Символ) Тогда
Символ = "0";
КонецЕсли;

// длина символа не должна превышать единицы
Символ = Лев(Символ, 1);
// удаляем крайние пробелы слева и справа строки
Строка = СокрЛП(Строка);

КоличествоСимволовНадоДобавить = ДлинаСтроки - СтрДлина(Строка);

Если КоличествоСимволовНадоДобавить > 0 Тогда
СтрокаДляДобавления = "";
Пока СтрДлина(СтрокаДляДобавления) < КоличествоСимволовНадоДобавить Цикл
СтрокаДляДобавления = СтрокаДляДобавления + Символ;
КонецЦикла;

Если ВРег(Режим) = "СЛЕВА" Тогда
Строка = СтрокаДляДобавления + Строка;
ИначеЕсли ВРег(Режим) = "СПРАВА" Тогда
Строка = Строка + СтрокаДляДобавления;
КонецЕсли;
КонецЕсли;

Возврат Строка;

КонецФункции


Пример Дополнения строки пробелами до заданной длины
Код 1C v 8.х
 Функция ДополнитьСтрокуПробелами(Строка, Длина)
Пока СтрДлина(Строка) < Длина Цикл
Пробел = Символ(0);
Строка = Строка + Пробел;
КонецЦикла;
Возврат Строка;
КонецФункции
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 13282
 0 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 3
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно...
Как в запросе задать условие по полю с типом Строка Неограниченной Длины? 0
Необходимо выбрать все документы с определенным комментарием! Для этого необходимо ограничить длину поля с помощью оператора языка запросов ВЫРАЗИТЬ. Например: Запрос=Новый Запрос(" |ВЫБРАТЬ ...
Коды ошибок 1Сv7 0
10 Ошибка закрытия файла 20 Ошибка создания файла 30 Ошибка определения длины файла 40 Ошибка установки длины файла 50 Ошибка при попытке заблокировать файл 60 Ошибка при открытии файла 70 Ошибка чтения файла 80 Ошибка...
Конструктор схемы компоновки данных - Закладка Набор данных - Запрос - Автозаполнение 0
У набора данных - запрос в схеме компоновки данных есть свойство АвтоЗаполнение. В данной статье мы рассмотрим, что происходит, если данное свойство установлено. Свойство АвтоЗаполнение указывает, что система должна...
Оператор ВЫРАЗИТЬ, аналог методов Лев, Прав, СокрЛП в Запросе? 1
Использовать конструкцию « ВЫРАЗИТЬ »: Запрос.Текст = " … |ГДЕ | (ВЫРАЗИТЬ(ЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) Груз" ; Запрос.УстановитьПараметр(" Груз" ," Тонн" ); С целью приведения строк...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.