Имя: Пароль:
1C
 
Поменять регистри в 1с - 1С
,
0 Casper21
 
07.10.15
00:08
Написать программу:
Берем текст, находим там первую букву "а" и меняем все следующие букви (кроме той первой "а") "а" на "А", потом находим большую "Б" и все следующие меняем на маленькие "б".
Или хоть алгоритм какой нибудь.
Спасибо
1 PR третий
 
07.10.15
00:11
Да.
2 Злопчинский
 
07.10.15
00:12
Согласен
3 ViSo76
 
07.10.15
00:21
Легко
4 Asmody
 
07.10.15
00:27
(0) А где: "Слава Путину! Слава России!"?
5 Kain_wrath
 
07.10.15
00:42
Белоленточники в треде
6 Zamestas
 
07.10.15
01:08
Как два пальца - алгоритм:
Берем текст, находим там первую букву "а" и меняем все следующие букви (кроме той первой "а") "а" на "А", потом находим большую "Б" и все следующие меняем на маленькие "б".
7 Andrewww123
 
07.10.15
05:24
Можно проще: "ПоменятьРегистри(а->А)"
8 DDwe
 
07.10.15
05:45
Кто такой этот ТС?
9 jurassic
 
07.10.15
06:12
а можно я не буду писать такую программу?
10 SleepyHead
 
гуру
07.10.15
06:13
Книгу о вкусной и здоровой пище уже предлагали?
11 kosts
 
07.10.15
06:48
(0) Не благодари

Функция ПоменятьРегистриВ1с1С(т)
    с = Прав(т, 1);
    Если с = "" Тогда
        Возврат "";
    ИначеЕсли с = "а" и Найти(т, "а") <> СтрДлина(т) Тогда
        с = "А";
    КонецЕсли;
    Возврат ПоменятьРегистриВ1с1С(Сред(т, 1, СтрДлина(т)-1)) + с;
КонецФункции
12 jurassic
 
07.10.15
06:53
можно и в одну строку кода уложить
13 Andrewww123
 
07.10.15
06:55
(12) Любой код можно записать в виде одной строки
14 kosts
 
07.10.15
06:57
(12) Нет никакого смысла. Ну может быть кроме как для обфускации...
15 jurassic
 
07.10.15
07:03
(13) в один оператор
16 mishaPH
 
модератор
07.10.15
07:05
в что, ВРег(твоя строка)уже отменили?
17 jurassic
 
07.10.15
07:05
(16) а поможет?
18 Andrewww123
 
07.10.15
08:49
(15) Можно пример?
19 jurassic
 
07.10.15
08:57
(18) Лев(стр, Найти(стр, "а"))+Сред(стр, Найти(стр, "а")+1) - как-то так
20 Andrewww123
 
07.10.15
09:12
(19) Вообще не понял
21 jurassic
 
07.10.15
09:15
(20) конкатенация кусков строк. куски получаются из исходной строки каждый раз
22 Andrewww123
 
07.10.15
09:19
(21) А где одна строка-то? :) Эта одна строка сама вопрос не решает
23 jurassic
 
07.10.15
09:28
(22) кусок до первой а+стрзаменить остаток
ну да, остаётся б
24 jurassic
 
07.10.15
09:33
кусок от (кусок до первой а+стрзаменить остаток) до первой б+стрзаменить остаток от (кусок до первой а+стрзаменить остаток)
изврат какой
25 Stim
 
07.10.15
09:35
"находим там первую букву "а" и меняем все следующие букви (кроме той первой "а") "а" на "А", потом находим большую "Б""

меняем все буквы на "а", а потом ищем букву "Б"? Откуда ей взяться-то, если все буквы уже "а" ?
26 PR третий
 
07.10.15
14:08
1. Находим первую "а", меняем ее на случайно сгенеренный ГУИД
2. Заменяем все "а" на "А"
3. Заменяем ГУИД на "а"
4. Находим первую "Б", меняем ее на случайно сгенеренный ГУИД
5. Заменяем все "Б" на "б"
6. Заменяем ГУИД на "Б"
27 jurassic
 
07.10.15
14:09
(26) чаще всего даже сработает
28 Лефмихалыч
 
07.10.15
14:15
ваш кролик написал...
29 ДенисЧ
 
07.10.15
14:17
30 jurassic
 
07.10.15
14:29
(29) забавно там версия текста выглядит
31 Casper21
 
07.10.15
15:11
(16) ВРег(твоя строка) преобразует все символы не так ли?
А мне нужно было только те которые после "1-ой" буквы.
Спасибо (11)  я сделал по ево методу, большое спасибо!
32 Garykom
 
гуру
07.10.15
15:15
(31) цикл по символам, определяем регистр текущего символа
2 строки "АБВ..." и "абв..." ищем в какой строке символ нашелся такой и регистр
и делаем или НРег() или ВРег()

ЗЫ и "сенька бери мяч" не надо
33 PR третий
 
07.10.15
15:20
(27) Приведешь пример, когда не сработает?
34 bolobol
 
07.10.15
15:21
Да не пригодится это в 1С... Пишите на С, что ли, без единицы вначале, который
35 magicSan
 
07.10.15
15:25
(11) в цикле рекурсие какая жуть - что стрзаменить не катит?
36 kosts
 
07.10.15
15:27
(35) При вычислении факториала, всегда приводят способ с рекурсией, однако никого это не напрягает.
37 magicSan
 
07.10.15
15:30
(36) ещё ума хватает сравнивать цикл с стрзаменить ....
38 kosts
 
07.10.15
15:32
(37) Данный способ приведен как пример. Никого не заставляю его использовать.
39 Casper21
 
07.10.15
15:36
(38) а как заменить на СтрЗаменить?
40 magicSan
 
07.10.15
15:37
(39) Процедура ПриОткрытии()
    
    
    хня("Б","456465аааББББрлорлоааааабббБББББкененааааа")
КонецПроцедуры


процедура хня(парам="а",стр="хня")
    ОчиститьСообщения();
    Сообщить(стр);
символ=?(парам=врег(парам),НРег(парам),врег(парам));    
темп=найти(стр,парам);
если темп>0 тогда
    стр=СтрЗаменить(стр,парам,символ);
    стр=лев(стр,темп-1)+парам+сред(стр,темп+1,999);
конецесли;    

сообщить(стр);
конецпроцедуры
41 Горогуля
 
07.10.15
15:39
(33) строка включает в себя подстроку 'случайно сгенеренный ГУИД'
42 magicSan
 
07.10.15
15:40
(38) ты хоть запускал свою функцию??? не взлетела
43 kosts
 
07.10.15
15:41
(40) Молодец только не правильно. ха-ха. зато гонору то

456465аааББББрлорлоааааабббБББББкененааааа
456465аааБбббрлорлоаааааббббббббкененааааа
44 magicSan
 
07.10.15
15:42
(43) и?? первый остался отсальные сменили регистр чо не так?
45 kosts
 
07.10.15
15:44
(44) в тексте задания маленькая а заменятся на большую, а не регистр меняется.
46 magicSan
 
07.10.15
15:45
(45) это в примере а в тексте менять регистр буквы
47 magicSan
 
07.10.15
15:45
(45) и да твоя функция тока для "а" - пиши ещё 65 дл остальных с учетом регистра.
48 kosts
 
07.10.15
15:47
(47) А, пусть ТС масштабирует
49 kosts
 
07.10.15
15:53
(40) нормально работает, эт я что-то на букве "а" зациклился...
50 User_Agronom
 
07.10.15
15:56
(1) Нет.
51 Casper21
 
07.10.15
15:58
(48) подскажите пожалуйста, как правильно ее запустить ((
:(
52 Горогуля
 
07.10.15
15:58
(48) масштабирует, да?
53 Casper21
 
07.10.15
16:05
(40) Спасибо, разобрался
54 Дмитрий
 
07.10.15
16:06
Читаешь строку посимвольно. Символы, прочитанные первый раз - переводишь в верхний регистр и добавляешь их к другой строке, изначально пустой. Эту вторую строку используешь для контроля - если находишь в ней текущий символ первой строки, переводишь его в нижний регистр.
55 Casper21
 
07.10.15
16:15
(40) а как сделать так, чтобы меняло сразу несколько букв?
а-а, б-Б, В-в, Г-г.
56 Casper21
 
07.10.15
22:02
а как сделать так, чтобы меняло сразу несколько букв?
а-а, б-Б, В-в, Г-г.

Процедура ПриОткрытии()
    
    
    хня("Б","456465аааББББрлорлоааааабббБББББкененааааа")
КонецПроцедуры

процедура хня(парам="а",стр="хня")
    ОчиститьСообщения();
    Сообщить(стр);
символ=?(парам=врег(парам),НРег(парам),врег(парам));    
темп=найти(стр,парам);
если темп>0 тогда
    стр=СтрЗаменить(стр,парам,символ);
    стр=лев(стр,темп-1)+парам+сред(стр,темп+1,999);
конецесли;    

сообщить(стр);
конецпроцедуры
57 Garykom
 
гуру
07.10.15
22:14
(56) может так?

Процедура Сформировать()
    ВходящаяСтрока = "АаБбВвГг";
    ИсходящаяСтрока = "";
    
    КоличествоСимволов = СтрДлина(ВходящаяСтрока);
    Для НомерСимвола=1 По КоличествоСимволов Цикл // цикл по символам входящей строки
        ТекСимвол = Сред(ВходящаяСтрока, НомерСимвола, 1);
        Если Врег(ТекСимвол)=ТекСимвол Тогда // верхний регистр, переводим в нижний
            ТекСимвол = Нрег(ТекСимвол);
        ИначеЕсли Нрег(ТекСимвол)=ТекСимвол Тогда // нижний регистр, переводим в верхний
            ТекСимвол = Врег(ТекСимвол);
        Иначе // хз какое то, не трогаем, переносим так
            
        КонецЕсли;
        ИсходящаяСтрока = ИсходящаяСтрока + ТекСимвол; // прибавляем символ в исходящую строку
    КонецЦикла;
    
    Сообщить("Было: "+ВходящаяСтрока);
    Сообщить("Стало: "+ИсходящаяСтрока);

КонецПроцедуры
58 Casper21
 
07.10.15
22:21
(57) и вам спасибо!
59 Casper21
 
07.10.15
22:22
а что такое СчЦ ?