|
Как программно добавить лидирующие нули | ☑ | ||
---|---|---|---|---|
0
Маленький Вопросик
29.04.12
✎
22:02
|
Есть номера докуметов (строка,11)
подскажите сабж. спасибо |
|||
1
Wobland
29.04.12
✎
22:03
|
подсказываю: Формат()
|
|||
2
Wobland
29.04.12
✎
22:04
|
не, не то. Прав("000000000000000000"+ТвойНомер, НужнаяДлина)
|
|||
3
ic-kat
29.04.12
✎
22:07
|
прав() же наоборот вырезает нужное количество символов. нет?
|
|||
4
Маленький Вопросик
29.04.12
✎
22:07
|
все правильно. спасибо.
|
|||
5
Wobland
29.04.12
✎
22:08
|
(3) "оставляет", не? ;)
|
|||
6
ic-kat
29.04.12
✎
22:10
|
(5)без разницы как назвать)
сначала не посмотрела, что внутри скобок. подумала, как через прав можно нули прибавить) |
|||
7
Маленький Вопросик
29.04.12
✎
22:17
|
А длину строки как определить, подскажите...
|
|||
8
Wobland
29.04.12
✎
22:19
|
(7) СтрДл... ненене, продам СП
|
|||
9
dmAlex
29.04.12
✎
22:20
|
Пока СтрДлина(ТвойНомер) < 11 Цикл
ТвойНомер = "0"+ТвойНомер; КонецЦикла |
|||
10
Wobland
29.04.12
✎
22:20
|
(9) дольше
|
|||
11
Torquader
29.04.12
✎
22:32
|
(10) Если (9) сделать один раз до длины номера, а дальше делать, как в (2) то будет быстрее.
В 1С нет заполнения строки в Visual Basic было бы проще. 'LenStr - необходимая длина строки 'Num - входное число NumStr=CStr(Num) ' получаем строку LenNum=Len(NumStr) ResStr=String(LenStr-LenNum,"0") & NumStr ' и без всякого цикла |
|||
12
Wobland
29.04.12
✎
22:34
|
(11) Если (9) сделать один раз до длины номера, а дальше делать, как в (2)
вот ваще не понял. (2) уже достаточно, что вы там городите? |
|||
13
jsmith
29.04.12
✎
22:35
|
Функция ПолучитьКод(Номер, Длина, Префикс = "")
Код = Префикс; ДлинаНомера = Длина - СтрДлина(Код); СтрНомер = Строка(Номер); СтрНомер = СтрЗаменить(СтрНомер, Символы.НПП, ""); Для i = 0 По ДлинаНомера - СтрДлина(СтрНомер) - 1 Цикл СтрНомер = "0" + СтрНомер; КонецЦикла; Код = Код + СтрНомер; Возврат Код; КонецФункции |
|||
14
Torquader
29.04.12
✎
22:40
|
(12) Если заранее неизвестна длина номера, то нулей придётся написать достаточно много, а это сказывается на производительности.
Если же в задаче сразу известно, что нужно строку, скажем, в 10 знаков, то мы смело пишем 10 нулей, а если длина строки - параметр, который пользователь введёт после написания алгоритма, то есть вероятность, что нулей может не хватить. |
|||
15
Wobland
29.04.12
✎
22:58
|
(14) в (0) всё точно описано
|
|||
16
Злопчинский
30.04.12
✎
00:34
|
стр1 = Число(СокрЛП(СтрНомерДок));
СтрНули = Формат(стр1,"Ч(0)10); |
|||
17
Anton_2011
30.04.12
✎
02:08
|
(2) всё сказал! Что непонятно то еще? В 1Ц бегущая строка одной строчкой операторов делается! Это я к примеру, а то с нулями своими...
|
|||
18
Klesk
30.04.12
✎
02:55
|
Прав("00000000000000000",11-СтрДлина(НомерДок))+НомерДок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |