|
Формирование кода. | ☑ | ||
---|---|---|---|---|
0
wade25
28.10.11
✎
16:12
|
Добрый день =)
Есть число произвольной длинны. От 1 до 8. Каким методом можно его преобразовать так, чтобы если число меньше 8, то слева подставлялся 0 за каждый недостающий разряд? |
|||
1
Wingless
28.10.11
✎
16:13
|
Формат()
|
|||
2
IronDemon
28.10.11
✎
16:13
|
О, пятничная ветка :)
|
|||
3
izekia
28.10.11
✎
16:14
|
классная тема
|
|||
4
wade25
28.10.11
✎
16:14
|
+ (0) Имеется ввиду конечно количество цифр в числе =)
|
|||
5
IronDemon
28.10.11
✎
16:15
|
(1) Слишком просто
|
|||
6
izekia
28.10.11
✎
16:16
|
Формат(х, "ЧЦ=8; ЧВН=; ЧГ=0")
|
|||
7
Mort
28.10.11
✎
16:16
|
Обломаю пятничную ветку.
S = Формат(Х, "ЧЦ=8; ЧВН=; ЧГ="); |
|||
8
izekia
28.10.11
✎
16:17
|
(5) о боже, я все испортил
|
|||
9
izekia
28.10.11
✎
16:17
|
(7) урааа
|
|||
10
wade25
28.10.11
✎
16:21
|
"слева подставлялся"...
Т.е. допустим 123 число, то на выходе нужно "00000123". |
|||
11
Живой Ископаемый
28.10.11
✎
16:22
|
1Cникам не нужно постить посты с ответами.. 1Сникам нужно рисовать картинки...
|
|||
12
Megas
28.10.11
✎
16:23
|
ММм давай так:
КоличествоНулей = 0; Если Окр(НужноеЧисло/10000000,0) <> НужноеЧисло/10000000 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/1000000,0) <> НужноеЧисло/1000000 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/100000,0) <> НужноеЧисло/100000 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/10000,0) <> НужноеЧисло/10000 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/1000,0) <> НужноеЧисло/1000 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/100,0) <> НужноеЧисло/100 тогда КоличествоНулей = КоличествоНулей+1; Если Окр(НужноеЧисло/10,0) <> НужноеЧисло/10 тогда КоличествоНулей = КоличествоНулей+1; КонецЕсли ; КонецЕсли ; КонецЕсли ; КонецЕсли ; КонецЕсли ; КонецЕсли ; КонецЕсли ; ЧислоПрописью = НужноеЧисло; Пока КоличествоНулей >0 цикл ЧислоПрописью = "0"+ЧислоПрописью; КоличествоНулей =КоличествоНулей -1; КонецЦикла Вот! Не благодари =) |
|||
13
izekia
28.10.11
✎
16:23
|
(10) омг, автор ты еще тут, а не кодишь?
|
|||
14
wade25
28.10.11
✎
16:26
|
Мегас спс)
(13) Чего придрался то? =) |
|||
15
Mort
28.10.11
✎
16:26
|
(11) Лучше видеоролики с комментариями.
|
|||
16
Megas
28.10.11
✎
16:27
|
(14) Не советую так делать это шутка !!!
|
|||
17
izekia
28.10.11
✎
16:28
|
(12) накуй, рекурсия рулит
Функция ОтформатироватьЧисло(число, количествоЗнаков) Если СтрДлина(число) < знаков Тогда Возврат "0" + ОтформатироватьЧисло(число, количествоЗнаков); КонецЕсли; Возврат Строка(число); КонецФункции |
|||
18
izekia
28.10.11
✎
16:28
|
(14) ответы в (6) и (7)
|
|||
19
izekia
28.10.11
✎
16:29
|
(14) но круче конечно как в (17)
|
|||
20
Megas
28.10.11
✎
16:31
|
Вот смотри по правильному
СтрокасНулями = Формат(ЧислоБезНулей,"ЧЦ=8; ЧВН=; ЧГ=") |
|||
21
Reset
28.10.11
✎
16:31
|
(17) СтрДлина(1234567)<8 = косяк
|
|||
22
Reset
28.10.11
✎
16:32
|
(17) Кроме того, если условие выполнится, получится бесконечный вызов
Не рулит твоя рекурсия |
|||
23
Megas
28.10.11
✎
16:32
|
(19) Мне больше нравится как в (12) =) а то в (17) заумно! Г0внокод должен быть тупым как валенок!
|
|||
24
izekia
28.10.11
✎
16:33
|
(22) да кули, торопился, -1 забыл подписать
|
|||
25
izekia
28.10.11
✎
16:34
|
исправленная версия(17):
Функция ОтформатироватьЧисло(число, количествоЗнаков) Если СтрДлина(число) < знаков Тогда Возврат "0" + ОтформатироватьЧисло(число, количествоЗнаков-1); КонецЕсли; Возврат Строка(число); КонецФункции |
|||
26
Mort
28.10.11
✎
16:34
|
Лев(Pow(10, ЧислоЗнаков) + ТвоёЧисло, ЧислоЗнаков)
|
|||
27
Читатель
28.10.11
✎
16:35
|
прав("00000000"+стрзаменить(перемЧисл,"",символы.нпп),8)
|
|||
28
izekia
28.10.11
✎
16:35
|
(21) кстати, да ... шикарно
стрДлина(1234567) = 9 |
|||
29
izekia
28.10.11
✎
16:36
|
+(28) что это пля за новости такие ... 1С еще скобочки считает?
|
|||
30
izekia
28.10.11
✎
16:37
|
ну до трех цифр будет работать и ок, а дальше незапланированная фича)
|
|||
31
wade25
28.10.11
✎
16:37
|
(25) Классно!
|
|||
32
Живой Ископаемый
28.10.11
✎
16:37
|
2(29) нет, неразрывные пробелы
|
|||
33
Mort
28.10.11
✎
16:37
|
Вернее
Лев(СтрЗаменить(Pow(10, ЧислоЗнаков) + ТвоёЧисло, " ", ""), ЧислоЗнаков) //СтрЗаменить чтобы кошерный "Формат" не использовать. |
|||
34
izekia
28.10.11
✎
16:39
|
исправленная версия (25):
Функция ОтформатироватьЧисло(числоСтрокойИТолькоСтрокойНоЕслиТриЦифрыТоМожноИЧислом, количествоЗнаков) Если СтрДлина(число) < знаков Тогда Возврат "0" + ОтформатироватьЧисло(число, количествоЗнаков-1); КонецЕсли; Возврат Строка(число); КонецФункции |
|||
35
Reset
28.10.11
✎
16:39
|
(33)
|
|||
36
izekia
28.10.11
✎
16:39
|
(32) вот ведь
|
|||
37
Reset
28.10.11
✎
16:40
|
вычислить то есть.
|
|||
38
Mort
28.10.11
✎
16:45
|
Да, конечно.
|
|||
39
izekia
28.10.11
✎
16:48
|
Функция ОтформатироватьЧисло(числоНеСтрока, знаков)
множитель = 1; Для инд = 1 По СтрДлина(знаков - Строка(числоНеСтрока)) Цикл множитель = множитель * 10; КонецЦикла; результат = Строка(числоНеСтрока * множитель); Для инд = 1 По СтрДлина(Строка(числоНеСтрока)) Цикл результат = Сред(результат, 2) + Лев(результат, 1); КонецЦикла; Возврат результат; КонецФункции |
|||
40
izekia
28.10.11
✎
17:00
|
с обрезанием:
шаблон = "12345678"; инд = СтрДлина(шаблон); длинаШаблона = инд; длинаСтроки = СтрДлина(числоСтрокой); Пока инд > 0 Цикл Если длинаСтроки < инд Тогда СтрЗаменить(шаблон, Строка(длинаШаблона - инд + 1), "0"); Иначе СтрЗаменить(шаблон, Строка(длинаСтроки - инд + 1), Сред(числоСтрокой, длинаСтроки - инд + 1)); КонецЕсли; инд = инд - 1; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |