helpf.pro
Регистрация

Дополнить строку до заданой длины

mire
05.10.2010 13:18Прочитано: 7355
Здравствуйте! Foxpro есть функции дополняющие строку до заданой длины каким-либо символом - Padr(),Padl()
В 1с 8,1 для этого надо писать свою функцию?
Стандартных нет?
Мне нужно строку обрезать до заданой длины или дополнить ее пробелами если длина ее меньше заданой длины.
Заранее спасибо.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
05.10.2010 14:25Ответ № 1
(0) mire, стандартной нет *03, но есть:
Код 1C v 8.х
 // Дополняет переданную в качестве первого параметра строку символами слева\справа до заданной длины и возвращает ее
// Незначащие символы слева и справа удаляются
// По умолчанию функция добавляет строку нулями слева
//
// Параметры:
// Строка - Строка - исходная строка, которую необходимо дополнить символами до заданной длины
// ДлинаСтроки - Число - требуемая конечная длина строки
// Символ - Строка - (необязательный) значение символа, которым необходимо дополнить строку
// Режим - Строка - (необязательный) [Слева|Справа] режим добавления символов к исходной строке: слева или справа
//
// Пример 1:
// Строка = "1234"; ДлинаСтроки = 10; Символ = "0"; Режим = "Слева"
// Возврат: "0000001234"
//
// Пример 2:
// Строка = " 1234 "; ДлинаСтроки = 10; Символ = "#"; Режим = "Справа"
// Возврат: "1234######"
//
// Возвращаемое значение:
// Строка - строка, дополненная символами слева или справа
//

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

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

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

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

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

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

КонецФункции
E_Migachev
05.10.2010 15:54Ответ № 2
+(1) Посмотри:
Функция дополняет строку до указаной длины определенным символом - Padl
и
Как обрезать строку до заданой длины или дополнить ее символами, если длина ее меньше заданой?
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.