Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Casper20
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
#1

Поменять регистри в 1с - 1С

06.10.2015, 22:53. Просмотров 296. Ответов 4
Метки нет (Все метки)

Написать программу:
Берем текст, находим там первую букву "а" и меняем все следующие букви (кроме той первой "а") "а" на "А", потом находим большую "Б" и все следующие меняем на маленькие "б".
Или хоть алгоритм какой нибудь.
Спасибо.
http://www.cyberforum.ru/php-oop/thread911863.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2015, 22:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поменять регистри в 1с (1С):

Поменять цвет и надпись в кнопке и при повторном нажатии поменять на изначальный
В заголовке в принципе описана моя задумка, поменять цвет кнопки не тяжело, но...

Поменять половины массива следующим образом: первый элемент поменять с последним, второй с предпоследним и т.д.
Дан одномерный массив А, состоящий из 2n элементов. Поменять его половины...

Мне нужно поменять фон сайта, т.е вставить картинку, в каком месте css можно его поменять.И каким образом?
* { margin: 0; padding: 0; box-sizing: border-box; ...

Если первый и последний элементы списка чётные - то поменять их местами. Иначе поменять местами голову и хвост списка
Дан список. Если первый и последний элементы списка чётные - то поменять их...

Двумерный массив. Найти минимальный и поменять его с первым, найти максимальный и поменять его с последним
Как можно изменить код чтобы выполнялось. 1.Найти минимальный элемент и...

4
Dethmontt
Модератор
Эксперт 1С
2577 / 2384 / 391
Регистрация: 10.03.2011
Сообщений: 8,426
Записей в блоге: 1
Завершенные тесты: 1
08.10.2015, 01:53 #2
Если я правильно тебя понял, то алгоритм следующий:
1. Шагаем по символам от начала текста
2. Если нашли "а"(искомое значение), режем до этого места(включительно) текст сохраняем его в переменной1, остатки текста сохраняем в переменной2
3. Заменяем все "а"(искомое значение), на "А"(искомое значение в верхнем регистре) в переменной2
4. Соединяем переменную1 и переменную2
5. Шагаем по тексту дальше
6. Ищем следующее условие и все повторяем все с пункта 2
0
Casper20
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
08.10.2015, 22:00  [ТС] #3
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Процедура Сформировать()
    ВходящаяСтрока = "АаБбВвГг";
    ИсходящаяСтрока = "";
    
    КоличествоСимволов = СтрДлина(ВходящаяСтрока);
    Для НомерСимвола=1 По КоличествоСимволов Цикл// цикл по символам входящей строки
 
        ТекСимвол = Сред(ВходящаяСтрока, НомерСимвола, 1);
        Если Врег(ТекСимвол)=ТекСимвол Тогда// верхний регистр, переводим в нижний
 
            ТекСимвол = Нрег(ТекСимвол);
        ИначеЕсли Нрег(ТекСимвол)=ТекСимвол Тогда// нижний регистр, переводим в верхний
 
            ТекСимвол = Врег(ТекСимвол);
        Иначе// хз какое то, не трогаем, переносим так
 
            
        КонецЕсли;
        ИсходящаяСтрока = ИсходящаяСтрока + ТекСимвол;// прибавляем символ в исходящую строку
 
    КонецЦикла;
    
    Сообщить("Было: "+ВходящаяСтрока);
    Сообщить("Стало: "+ИсходящаяСтрока);
 
КонецПроцедуры
Добавлено через 14 часов 6 минут
а как сделать так, чтобы меняло сразу несколько букв?
а-а, б-Б, В-в, Г-г.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Процедура ПриОткрытии()
    
    
    хня("Б","456465аааББББрлорлоааааабббБББББкененааааа")
КонецПроцедуры
 
процедура хня(парам="а",стр="хня")
    ОчиститьСообщения();
    Сообщить(стр);
символ=?(парам=врег(парам),НРег(парам),врег(парам));    
темп=найти(стр,парам);
если темп>0 тогда
    стр=СтрЗаменить(стр,парам,символ);
    стр=лев(стр,темп-1)+парам+сред(стр,темп+1,999);
конецесли;    
 
сообщить(стр);
конецпроцедуры
0
Dethmontt
Модератор
Эксперт 1С
2577 / 2384 / 391
Регистрация: 10.03.2011
Сообщений: 8,426
Записей в блоге: 1
Завершенные тесты: 1
09.10.2015, 00:35 #4
Лучший ответ Сообщение было отмечено Casper20 как решение

Решение

1C
1
2
3
4
Параметр = "а";
Стр = "бабабабабабабабабабаба";
СтрЗаменить(Стр, Нрег(Параметр), Врег(Параметр)); //заменить в тексте все маленькие "а" на большие "А"
//Осталось разбить текст, на места где надо заменять и где не надо
1
Casper20
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
09.10.2015, 17:23  [ТС] #5
Спасибо!
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ОчиститьСообщения();
    Путь = "c:\111.txt";
    Текст = Новый ЧтениеТекста(Путь, КодировкаТекста.ANSI);
    Текстик = Текст.ПрочитатьСтроку();
    МассивСимволовПрочтенных = Новый Массив;
    МассивСимволовПрочтенных.Добавить("");
    Для ind = 1 по СтрДлина(Текстик) Цикл
        НашСимвол = Сред(Текстик,ind,1);
        Если МассивСимволовПрочтенных.Найти(Нрег(НашСимвол))= Неопределено Тогда 
            Строка1 = Лев(Текстик,ind);
            Строка2 = Сред(Текстик,ind+1);
            Текстик = Строка1 + СтрЗаменить(Строка2,НашСимвол,Перевертиш(НашСимвол)) ;
            МассивСимволовПрочтенных.Добавить(Нрег(НашСимвол));
        КонецЕсли;
    КонецЦикла;
    Сообщить(Текстик);      
    Путь = "c:\222.txt";
    Текстик = Новый ЧтениеТекста(Путь, КодировкаТекста.ANSI);
    Текстик.Записать();
КонецПроцедуры
1C
1
2
3
функция Перевертиш(Символ) Экспорт
    Возврат ?(Символ=ВРег(Символ),НРег(Символ),ВРег(Символ));
КонецФункции
0
09.10.2015, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2015, 17:23
Привет! Вот еще темы с решениями:

Поменять местами первый и последний столбец, после поменять местами первый и предпоследний строки
Масив 4х4, нужно поменять местами первый и последний столбец, после поменять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru