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

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

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

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

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

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

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

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

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

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

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


Пример Дополнения строки пробелами до заданной длины
Код 1C v 8.х
 Функция ДополнитьСтрокуПробелами(Строка, Длина)
Пока СтрДлина(Строка) < Длина Цикл
Пробел = Символ(0);
Строка = Строка + Пробел;
КонецЦикла;
Возврат Строка;
КонецФункции
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 12360
 0 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 0
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через...
1C медленно работает по сети с базой на SQL Server 8
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Excel файл как Внешний источник данных 4
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . ...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.