Как программно добавить лидирующие нули #608744


#0 by МаленькийВопросик
Есть номера докуметов (строка,11) подскажите сабж. спасибо
#1 by Wobland
подсказываю: Формат
#2 by Wobland
не, не то. Прав("000000000000000000"+ТвойНомер, НужнаяДлина)
#3 by ic-kat
прав же наоборот вырезает нужное количество символов. нет?
#4 by МаленькийВопросик
все правильно. спасибо.
#5 by Wobland
"оставляет", не? ;)
#6 by ic-kat
без разницы как назвать) сначала не посмотрела, что внутри скобок. подумала, как через прав можно нули прибавить)
#7 by МаленькийВопросик
А длину строки как определить, подскажите...
#8 by Wobland
СтрДл... ненене, продам СП
#9 by dmAlex
#10 by Wobland
дольше
#11 by Torquader
Если сделать один раз до длины номера, а дальше делать, как в то будет быстрее. В 1С нет заполнения строки в Visual Basic было бы проще. 'LenStr - необходимая длина строки 'Num - входное число NumStr=CStr(Num) ' получаем строку ResStr=String(LenStr-LenNum,"0") & NumStr ' и без всякого цикла
#12 by Wobland
Если сделать один раз до длины номера, а дальше делать, как в вот ваще не понял. уже достаточно, что вы там городите?
#13 by jsmith
#14 by Torquader
Если заранее неизвестна длина номера, то нулей придётся написать достаточно много, а это сказывается на производительности. Если же в задаче сразу известно, что нужно строку, скажем, в 10 знаков, то мы смело пишем 10 нулей, а если длина строки - параметр, который пользователь введёт после написания алгоритма, то есть вероятность, что нулей может не хватить.
#15 by Wobland
в всё точно описано
#16 by Злопчинский
#17 by Anton_2011
всё сказал! Что непонятно то еще? В 1Ц бегущая строка одной строчкой операторов делается! Это я к примеру, а то с нулями своими...
#18 by Klesk
Прав("00000000000000000",11-СтрДлина(НомерДок))+НомерДок
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С