Имя: Пароль:
1C
1С v8
функция
,
0 Kurbash
 
12.05.14
09:56
Такая ситуация-надо сделать функцию которая добивает пробелами строку до заданной строки. кое где отрабатывает нормально где то не добавляет по несколько символов. Где ошибся?

Функция ПривестиСтрокуВФормат(стр,общдлинна) экспорт
колводобавить=общдлинна-СтрДлина(стр);
ст="";
если колводобавить=0 тогда
    возврат стр иначе
    для с=0 по колводобавить цикл
ст=ст+" ";
с=с+1;
конеццикла;
возврат ст+стр;
конецесли;

конецфункции
1 Wobland
 
12.05.14
10:01
Прав(стр+"            ", скока надо)
2 Wobland
 
12.05.14
10:01
(1) лев, конечно
3 kosts
 
12.05.14
10:01
(1) Опередил...
4 Kurbash
 
12.05.14
10:05
блин, ступил, спасибо
5 kosts
 
12.05.14
10:05
(0) Вот еще вариант

Функция ПривестиСтрокуВФормат(ИсходнаяСтрока, Длина)
    Если СтрДлина(ИсходнаяСтрока) < Длина Тогда
        Возврат ПривестиСтрокуВФормат(ИсходнаяСтрока+" ", Длина);
    Иначе
        Возврат ИсходнаяСтрока;
    КонецЕсли;
КонецФункции
6 Ненавижу 1С
 
гуру
12.05.14
10:06
(5) жесть
7 Irbis
 
12.05.14
10:08
(5) Неудачное и неоправданное применение рекурсии. Пожизненный эцих с гвоздями.
8 kosts
 
12.05.14
10:11
(7) Не, нормально
9 alexei366
 
12.05.14
10:12
А нафига с=с+1;
10 Ненавижу 1С
 
гуру
12.05.14
10:13
(8) да, но запятая не нужна и НЕ пишется слитно ))
11 kosts
 
12.05.14
10:15
Вот не хватает простых функций в 1с, вот например нету функции создающую строку одинаковых символов...
12 kosts
 
12.05.14
10:17
(10)
Если Строка = "Не, нормально" Тогда
    Строка = "И так сойдет";
КонецЕсли;
13 Ненавижу 1С
 
гуру
12.05.14
10:18
(11) пичаль, тоска...
14 Wobland
 
12.05.14
10:18
(12) Если НРег(Строка) = "не, нормально" Тогда
15 1dvd
 
12.05.14
10:18
(7) +1
Лучше свести к минимуму количество конкатенаций. Это очень затратная операция
16 kosts
 
12.05.14
10:23
(13) Печалюсь, когда в очередной поделке то этого нет, то того нет.
17 1dvd
 
12.05.14
10:35
Кстати, в семерке это делалось очень просто:

Формат(Стр, "С200")