|
Разделить цифры в числе пробелами | ☑ | ||
---|---|---|---|---|
0
vovnet
18.04.12
✎
12:03
|
Необходимо разбить число пробелами.
Например 23543 должно быть как строка "2 3 5 4 3" |
|||
1
Нуф-Нуф
18.04.12
✎
12:04
|
цикл
|
|||
2
dk
18.04.12
✎
12:06
|
погляди справку по Сред()
|
|||
3
vovnet
18.04.12
✎
12:37
|
Все сделал, вот код, может кому пригодится:
Функция РазбивкаЧисел(Разб) РазбСтрока = Строка(Разб); // строковое представление числа ДлСтр = СтрДлина(РазбСтрока); // количество цифр в числе сч = 1; Для ном = 1 По ДлСтр Цикл ВозвратСтроки = ВозвратСтроки + Сред(РазбСтрока, сч, 1) + " "; сч = сч + 1; КонецЦикла; Возврат ВозвратСтроки; КонецФункции |
|||
4
Ыщъ
18.04.12
✎
12:41
|
(3) Работает?
|
|||
5
Wobland
18.04.12
✎
12:42
|
(3) последний пробел тебе нужен?
|
|||
6
Wobland
18.04.12
✎
12:43
|
где ВозвратСтроки="" ?
|
|||
7
Попытка1С
18.04.12
✎
12:44
|
Срочно а базу знаний...
|
|||
8
Ыщъ
18.04.12
✎
12:46
|
Функция РазбавитьЧисло(Разб)
РазбСтрока = Строка(Разб); ВозвратСтроки = ""; Для ном = 1 По СтрДлина(РазбСтрока) Цикл ВозвратСтроки = ВозвратСтроки + Сред(РазбСтрока, ном, 1) + " "; КонецЦикла; Возврат СокрП(ВозвратСтроки); КонецФункции |
|||
9
Wobland
18.04.12
✎
12:48
|
(3) на вот, чуть симпатичней
стр="88465"; стр1=""; Для й=1 По СтрДлина(стр) Цикл стр1=стр1+Сред(стр, й, 1)+" "; КонецЦикла; Сообщить(СокрП(стр1)); |
|||
10
Попытка1С
18.04.12
✎
12:50
|
вот самый оптимальный
стр="88465"; возврат "8 8 4 6 5"; |
|||
11
Undefined
18.04.12
✎
12:52
|
(10) ггг)
|
|||
12
Wobland
18.04.12
✎
12:52
|
(10) первая строка лишняя
|
|||
13
Попытка1С
18.04.12
✎
12:56
|
(12) ))
|
|||
14
Ыщъ
18.04.12
✎
12:56
|
Вот теперь можно в базу знаний
|
|||
15
andrewks
18.04.12
✎
13:16
|
и даже никто не спросил: накуа?
|
|||
16
PR
18.04.12
✎
13:18
|
(14) Ну да, давайте всякую хрень в БЗ накидаем. Чтобы было.
|
|||
17
Попытка1С
18.04.12
✎
13:19
|
(16) Что-то у тебя с юмором совсем туго..
|
|||
18
Wobland
18.04.12
✎
13:24
|
вот что в базу знаний надо ;)
Формат(ч, "ЧГ=1,1,1"); |
|||
19
Ыщъ
18.04.12
✎
13:28
|
(18) Что это?
|
|||
20
vovnet
18.04.12
✎
13:28
|
ну кому нужно доработает, просто сам гуглил - так ничего не нашел подходящего))
|
|||
21
badboychik
18.04.12
✎
13:29
|
на перле была бы одна строчка
|
|||
22
Wobland
18.04.12
✎
13:29
|
(20) скажи уже, зачем?
|
|||
23
vovnet
18.04.12
✎
13:29
|
Работает, нужно только в начале функции написать
ВозвратСтроки = ""; Чтобы обнулялось при последующем вызове функции. |
|||
24
Wobland
18.04.12
✎
13:30
|
(23) это ты (6) невнимательно читал
|
|||
25
vovnet
18.04.12
✎
13:31
|
да, возможно
|
|||
26
badboychik
18.04.12
✎
13:35
|
$a="12345"
$a ~= s/(\d)(?=^\Z)/\1 / print $a |
|||
27
Ыщъ
18.04.12
✎
13:36
|
(26) На Ассемблере можно?
|
|||
28
Попытка1С
18.04.12
✎
13:40
|
Еще рекурсии не хватает.
|
|||
29
Mikeware
18.04.12
✎
13:43
|
(28) запросто!
|
|||
30
vovnet
18.04.12
✎
13:57
|
Ну вот тогда окончательный вариант:
// Функция возвращающая строковое представление числа, // каждая цифра которого отделена пробелами Функция РазбивкаЧисел(Разб) РазбСтрока = Строка(Разб); // строковое представление числа ДлСтр = СтрДлина(РазбСтрока); // количество цифр в числе сч = 1; // счетчик символов ВозвратСтроки = ""; // возвращаемая строка Для ном = 1 По ДлСтр Цикл ВозвратСтроки = ВозвратСтроки + Сред(РазбСтрока, сч, 1) + " "; сч = сч + 1; КонецЦикла; Возврат ВозвратСтроки; КонецФункции |
|||
31
Wobland
18.04.12
✎
13:57
|
(30) запятую после слова "функция" пропустил. исправляй, показывай
|
|||
32
vovnet
18.04.12
✎
13:59
|
сейчас
|
|||
33
Ыщъ
18.04.12
✎
14:01
|
(30) Чукча не читатель? Чукча писатель?
|
|||
34
chief accountant
18.04.12
✎
14:01
|
(30) ну и накуа счетчик символов
|
|||
35
Wobland
18.04.12
✎
14:03
|
(32) я ещё на (5) могу намекнуть. и на (8) с (9)
|
|||
36
vovnet
18.04.12
✎
14:04
|
можно и без счетчика.
|
|||
37
vovnet
18.04.12
✎
14:07
|
Wobland, ты еще не видел мой вариант с остатком от деления...
Хорошо, что тут сразу подсказали функцию нужную)) |
|||
38
Ыщъ
18.04.12
✎
14:09
|
Можно и без ДлСтр
|
|||
39
Попытка1С
18.04.12
✎
14:09
|
(37) Предлагаю тебе оформить данную разработку в отдельную конфигурацию.
|
|||
40
Wobland
18.04.12
✎
14:11
|
(37) дата регистрации сегодня. стесняешься? ;)
|
|||
41
Ыщъ
18.04.12
✎
14:14
|
(39) и только за большие деньги.
|
|||
42
vovnet
18.04.12
✎
14:28
|
Wobland, я тут только сегодня и зарегался.
Ыщъ, с ДлСтр лучше думаю.. зачем в цикле кучу раз вызывать ф-ю СтрДлина()? |
|||
43
Wobland
18.04.12
✎
14:33
|
(42) один раз вызывать. насладись результатом:
Функция ДлинаСтр(стр) Сообщить("ой"); Возврат СтрДлина(стр); КонецФункции Процедура КнопкаВыполнитьНажатие(Кнопка) стр=234523; стр1=""; Для й=1 По ДлинаСтр(стр) Цикл стр1=стр1+Сред(стр, й, 1)+" "; КонецЦикла; Сообщить(СокрП(стр1)); |
|||
44
Wobland
18.04.12
✎
14:37
|
а семёрочный Формат() разделителей групп не знает?
|
|||
45
vovnet
18.04.12
✎
14:39
|
Спасибо большое за столь пристальное внимание к моему ламерскому коду))
|
|||
46
antoneus
18.04.12
✎
14:43
|
гыгы
Возврат СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Разб, "1", "1 "), "2", "2 "), "3", "3 "), "4", "4 "), "5", "5 "), "6", "6 "), "7", "7 "), "8", "8 "), "9", "9 "), "0", "0 ") |
|||
47
Wobland
18.04.12
✎
14:47
|
(46) каков красавец ;)
|
|||
48
Гость2
18.04.12
✎
14:52
|
// Функция возвращающая строковое представление числа,
// каждая цифра которого отделена пробелами Функция РазбивкаЧисел(Разб) РазбСтрока = Строка(Разб); // строковое представление числа ДлСтр = СтрДлина(РазбСтрока); // количество цифр в числе ВозвратСтроки = Лев(РазбСтрока, 1); // возвращаемая строка Для ном = 2 По ДлСтр Цикл ВозвратСтроки = ВозвратСтроки + " " + Сред(РазбСтрока, ном, 1); КонецЦикла; Возврат ВозвратСтроки; КонецФункции |
|||
49
Попытка1С
18.04.12
✎
14:53
|
(46) Незачет, последний пробел не убрал.
|
|||
50
antoneus
18.04.12
✎
14:55
|
(49) ну, забыл, ну что
Возврат СокрЛП(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Разб, "1", "1 "), "2", "2 "), "3", "3 "), "4", "4 "), "5", "5 "), "6", "6 "), "7", "7 "), "8", "8 "), "9", "9 "), "0", "0 ")) |
|||
51
Попытка1С
18.04.12
✎
14:57
|
(50) Красавец. А можешь для букв написать такую функцию)
|
|||
52
Ыщъ
18.04.12
✎
15:04
|
Ветку в "Юмор" не пора?
|
|||
53
antoneus
18.04.12
✎
15:18
|
(51) в условии сказано для цыфр
|
|||
54
Попытка1С
18.04.12
✎
16:01
|
(53) Печалька.
|
|||
55
Mr_Rm
18.04.12
✎
16:52
|
(26) $a ~= s/\B/ /g
(50) быстрее всех вариантов с циклами |
|||
56
aleks-id
18.04.12
✎
17:07
|
жесть
Функция РазбивкаЧисел(Разб) Для ном = 0 По 9 Цикл Разб= СтрЗаменить(Разб, Строка(ном), Строка(ном)+ " "); КонецЦикла; Возврат СокрЛП(Разб); КонецФункции |
|||
57
aleks-id
18.04.12
✎
17:09
|
обыбался
Функция РазбивкаЧисел(ВхЧисло) Разб = Строка(ВхЧисло); Для ном = 0 По 9 Цикл Разб= СтрЗаменить(Разб, Строка(ном), Строка(ном)+ " "); КонецЦикла; Возврат СокрЛП(Разб); КонецФункции |
|||
58
andrewks
18.04.12
✎
17:10
|
да, пожалуй, (50) самый быстрый будет
|
|||
59
aleks-id
18.04.12
✎
17:11
|
(58) зато если буквы разбавлять, то умучаешься копипастить
|
|||
60
andrewks
18.04.12
✎
17:12
|
(59) нужно написать код для генерации текста кода О_о
|
|||
61
Wobland
18.04.12
✎
17:12
|
(59) по кодам символов можно
|
|||
62
aleks-id
18.04.12
✎
17:13
|
(61) что именно? пример из (50) ?
|
|||
63
Ыщъ
18.04.12
✎
17:17
|
(60) В бесконечную рекурсию уйдёт и затопит кодом всю Землю.
|
|||
64
zavsom
18.04.12
✎
17:20
|
(0) Еще один Г1с со своей никому не нужной библиотекой функций???
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |