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 |  Дата:   Прочитано: 12291
 0 
Распечатать
Возможно, вас также заинтересует
Как в запросе задать условие по полю с типом Строка Неограниченной Длины? 0
Необходимо выбрать все документы с определенным комментарием! Для этого необходимо ограничить длину поля с помощью оператора языка запросов ВЫРАЗИТЬ. Например: Запрос=Новый Запрос(" |ВЫБРАТЬ ...
Коды ошибок 1Сv7 0
10 Ошибка закрытия файла 20 Ошибка создания файла 30 Ошибка определения длины файла 40 Ошибка установки длины файла 50 Ошибка при попытке заблокировать файл 60 Ошибка при открытии файла 70 Ошибка чтения файла 80 Ошибка...
Конструктор схемы компоновки данных - Закладка Набор данных - Запрос - Автозаполнение 0
У набора данных - запрос в схеме компоновки данных есть свойство АвтоЗаполнение. В данной статье мы рассмотрим, что происходит, если данное свойство установлено. Свойство АвтоЗаполнение указывает, что система должна...
Оператор ВЫРАЗИТЬ, аналог методов Лев, Прав, СокрЛП в Запросе? 0
Использовать конструкцию « ВЫРАЗИТЬ »: Запрос.Текст = " … |ГДЕ | (ВЫРАЗИТЬ(ЕдиницыХранения.Владелец.Наименование КАК СТРОКА(4))) Груз" ; Запрос.УстановитьПараметр(" Груз" ," Тонн" ); С целью приведения строк...
Поле ввода ~ Маска 0
Для 1с поле ввода с типом строка можно применить маску ввода. В 1с маска задает формат представления данных и ограничивает вводимой информации. Это очень удобно бывает во многих жизненных задачках, например ввод...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.