Имя: Пароль:
1C
 
Добавление определенного кол-ва одинаковых символов
0 kugelfangg
 
16.06.10
13:55
Здравствуйте, подскажите пожалуйста каким образов можно к Строке можно добавить определенное кол-во "*" или " ", НЕ используя цикл?
1 Defender aka LINN
 
16.06.10
13:57
Шаблон = "***********************************************************************************************************************"

Строка = Строка + Лев(Шаблон, СколькоНадо);
2 kugelfangg
 
16.06.10
14:00
Гениально! спасибо!
3 H A D G E H O G s
 
16.06.10
14:01
ППЦ
4 Aprobator
 
16.06.10
14:33
(1) а вдруг символов в шаблоне мало окажется ).
(0) не нравится цикл - делай рекурсию.

Процедура ДобавитьСимвол(СтрокаДляДополнения, ДобавляемыйСимвол, СкокаНадо)
         Если СкокаНадо = 0 Тогда
              Возврат;
         Иначе
              СтрокаДляДополнения = СтрокаДляДополнения + ДобавляемыйСимвол;
              СкокаНадо           = СкокаНадо - 1;
              ДобавитьСимвол(СтрокаДляДополнения, ДобавляемыйСимвол, СкокаНадо);
        КонецЕсли;
КонецЕсли;
5 kugelfangg
 
16.06.10
14:35
(4) Спасибо.
6 ice777
 
16.06.10
14:35
или Формат().
7 Aprobator
 
16.06.10
14:56
(6) для чисто строки не катит.
8 Elysee
 
16.06.10
14:59
(0)почему цикл не устроил?
9 Ненавижу 1С
 
гуру
16.06.10
14:59
(8) религия не позволяет
10 kugelfangg
 
16.06.10
15:09
(8)Цикл много места занимает + мне известно мах кол-во символов, так что (1) в данной ситуации идеальный вариант.
11 Elysee
 
16.06.10
15:10
много места в модуле?
12 H A D G E H O G s
 
16.06.10
15:11
(10)
<<Цикл много места занимает>>
http://lurkmore.ru/%C2%EE%ED_%E8%E7_%EF%F0%EE%F4%E5%F1%F1%E8%E8
13 Elysee
 
16.06.10
15:17
(10)всмысле долго писать?
14 Aprobator
 
16.06.10
15:28
(10) Это много?

ДобавляемыйСимвол = "*";
СимволовВСтроке = 50;
Пока СтрДлина(МучаемаяСтрока) < СимволовВСтроке Цикл
    МучаемаяСтрока = МучаемаяСтрока + ДобавляемыйСимвол;
КонецЦикла;
15 kugelfangg
 
16.06.10
15:31
(14) Больше чем (1) + Циклом я знал как делать, хотелось найти другие пути решения.
16 Aprobator
 
16.06.10
15:32
+(14) Для случая, когда строка добивается символами до нужной длины.
Вот те еще один вариант.

Шаблон = "***********************************";
ТребуемаяСтрока = Лев(ИскомаяСтрока + Шаблон, ТребуемаяДлина);
17 Aprobator
 
16.06.10
15:33
+(16) а то в (1) еще разницу надо считать )
18 kugelfangg
 
16.06.10
15:38
(17) Круть=)
19 Ахиллес
 
16.06.10
15:38
(0) Гениальную самописную конфу ваяешь? В типовых от 1С кстати есть глобальная функция которая делает то что те надо, причем дополнять можно любыми символами, хошь справа, хошь слева.
20 kugelfangg
 
16.06.10
15:48
(19)Нет=) Конфу ваять мне еще рановато=)
Подскажи плз как эта функция называется.
21 zak555
 
16.06.10
15:50
//******************************************************************************
// глДополнитьСтроку(Парам,Длина)
//
// Параметры:
//        Парам - число или строка
//      Длина - число (целое), длина строки.
//        Символ - символ, которым будет дополняться строка до нужной длины
//        Режим - число - режим дополнения: 0 - слева, 1 - справа
//
// Возвращаемое значение:
//      строка
//
// Описание:
//      пример использования:
//      глДополнитьСтроку(8,2) = "08"
//      глДополнитьСтроку("стр", 5, "-") = "--стр"
//      глДополнитьСтроку(12,4,"0",1) = "1200"
//
Функция глДополнитьСтроку(Знач Парам, Длина, Символ = "0", Режим = 0) Экспорт
   Парам = ""+Парам;  // превращаем параметр в строку
   Добавить = Длина - СтрДлина(Парам);
   Если Добавить>0  Тогда
       Добавок="";
       Для Сч = 1 По Добавить  Цикл
           Добавок=Добавок+Символ
       КонецЦикла;
       Возврат ?(Режим=0,Добавок+Парам, Парам+Добавок);
   Иначе
       Возврат    Парам;
   КонецЕсли;
КонецФункции // глДополнитьСтроку()
22 Aprobator
 
16.06.10
15:55
так даешь 100?
23 zbv
 
16.06.10
16:09
Строка = Строка + СтрЗаменить(СтрЗаменить(Формат(1,"ЧЦ="+СколькоНадо+"; ЧРГ=0; ЧВН="), "0", "*"), "1", "*");
24 Aprobator
 
16.06.10
16:12
активнее, активнее товарищи! Кто уложится в половину строки)
AdBlock убивает бесплатный контент. 1Сергей