Имя: Пароль:
1C
 
Зеркальный текст 1с - 1С
, ,
0 Casper21
 
07.10.15
00:07
В 1с сделать такую обработку, чтоб она автоматически перевернула текст наоборот т.е зеркально.
Подскажите пожалуйста.

К примеру "Привет, как погода. " --> "тевирП, как адогоп. "
1 Злопчинский
 
07.10.15
00:11
Автор дятел
Приведенный пример не соответствует условию задачи
В задаче фигуриркет необходимость переворота текста
А в примере показан переворот слов, составляющих текст
Подумай еще раз что всетаки нужно
И приходи снова
2 GROOVY
 
07.10.15
00:11
Со строками работать не умеешь? На работу не возьмут. Тут примитивная логика, 9й класс в школе.
3 PR третий
 
07.10.15
00:12
Разрешаю
4 ViSo76
 
07.10.15
00:23
Походу зачет на носу
5 PR третий
 
07.10.15
00:26
(4) Какой зачет? Максимум четверть в школе.
6 Asmody
 
07.10.15
00:27
Скакать надо
7 Garykom
 
гуру
07.10.15
00:40
(6) ?тежомоп А
8 Casper21
 
07.10.15
13:21
нужно переворот слов, составляющих текст, как в примере.
Извените.
9 jurassic
 
07.10.15
13:22
ну да. через пару недель школьные
10 jurassic
 
07.10.15
13:22
каникулы
11 jurassic
 
07.10.15
13:23
(8) какие планы?
12 Fuas4
 
07.10.15
13:28
(11) Ждать, когда тут за него напишут :)
13 Timon1405
 
07.10.15
13:32
(12) илсЕ икур зи ыпож, огечин ен тежомоп
14 jurassic
 
07.10.15
13:33
арабская вязь на входе допустима?
15 MaXpaT
 
07.10.15
13:33
&НаСервере
Функция Переворот(ИсходнаяСтрока)
    НоваяСтрока = "";
    
    СимволыРазделители = " ,.:;()";
    
    Слово = "";
    Для Позиция = 1 по СтрДлина(ИсходнаяСтрока) Цикл
        Символ = Сред(ИсходнаяСтрока,Позиция,1);
        Если Найти(СимволыРазделители,Символ)>0 Тогда // это новое слово
            НоваяСтрока = НоваяСтрока + Слово + Символ;
            Слово = "";
        Иначе
            Слово = Символ + Слово;
        КонецЕсли;
    КонецЦикла;
    
    Если НЕ ПустаяСтрокА(Слово) Тогда
        НоваяСтрока = НоваяСтрока + Слово;
    КонецЕсли;
    
    Возврат НоваяСтрока;
КонецФункции
16 Garykom
 
гуру
07.10.15
13:47
(15) а не проще было строку в список строк-слов (по разделителям)
и потом не парясь двумя циклами собрать переворачивая?
17 PR третий
 
07.10.15
13:53
(16) Человеку, который пишет "извените", уже ничего не поможет.
18 kosts
 
07.10.15
13:54
(0) В прошлой теме отпишись, сделал или нет. А то невежливо, народ помогал, а даже спасибо не видели...
19 Stim
 
07.10.15
13:57
вот мы и дожили до того, как школьники лезут на профессиональный форум с детскими вопросами по зачету по 1С
20 Лефмихалыч
 
07.10.15
14:01

Строка = "Я - добрый";
Наоборот = "";
СтрДлина = СТрДлина(Строка);
Для СчЦ = 1 по СтрДлина Цикл
   Наоборот = Наоборот + Сред(Строка, СтрДлина-СчЦ+1, 1);
КонецЦикла;
21 PR третий
 
07.10.15
14:05
Интересно, сколько народу отпишется теперь, как отзеркалировать текст, не осиля (8).
22 Лефмихалыч
 
07.10.15
14:13
(21)

Строка = "Это одна и та же самая херня";
Наоборот = "";
Слова = СтрЗаменить(Строка, " ",Символы.ПС);
Для СчЙ = 1 по СтрЧислоСтрок(Слова) Цикл
   Слово = СтрПолучитьСтроку(Слова, СчЙ);
   СтрДлина = СТрДлина(Слово);
   Для СчЦ = 1 по СтрДлина Цикл
      Наоборот = Наоборот + Сред(Слово, СтрДлина-СчЦ+1, 1);
   КонецЦикла;
   Наоборот = Наоборот + " ";
КонецЦикла;
Наоборот = СокрЛП(Наоборот);
23 kosts
 
07.10.15
14:14
(0) Вот держи и не благодари

Функция ЗеркальныйТекст1с1С(т)
    т = СтрЗаменить(т, "Привет", "тевирП");
    т = СтрЗаменить(т, "погода", "адогоп");
    Возврат т;
КонецФункции
24 Timon1405
 
07.10.15
14:16
(22) и опять не по ТЗ)))
по ТЗ знаки препинания относятся к прошлому слову,
У вас выдаст ",тевирП как .адогоп", а нужно "тевирП, как адогоп."
25 jurassic
 
07.10.15
14:18
(23) Возврат "тевирП, как адогоп. " и всех делов
26 WebberNSK
 
07.10.15
14:20
(0) 1000р на телефон, код могу смс-кой прислать
27 Casper21
 
07.10.15
14:20
(23) Спасибо тебе за помощь в прошлой теме и сейчас.
И всем спасибо за помощь, извините что я такой тупой (
Может у вас есть какие-то задачи по срокам, чтобы я поучился?
28 jurassic
 
07.10.15
14:22
29 kosts
 
07.10.15
14:22
(27) Да ладно, не надо называть себя так. Просто еще не научился. Все через это проходили...
30 PR третий
 
07.10.15
14:23
31 Casper21
 
07.10.15
14:23
ой, еще и ошибку сделал "строкам" (28)
32 jurassic
 
07.10.15
14:24
(31) учительница пусть тебе задачи даёт
33 Casper21
 
07.10.15
14:26
(23) а если для любого текста?
универсальная функция?
34 bolobol
 
07.10.15
14:26
Блииин))

Алфавит= "абвг...";
Для й = 1 по СтрДлина(Текст) Цикл...
Слово закончилось если символ не в алфавите
разворот слова
Слово началось, если символ в алфавите

алфавит можно задать границами кодов символов, благо - они известны, но перепечатать - проще. НРег в зубы и взлетай.

Что делать, если язык Олбанский - не знаю...
35 jurassic
 
07.10.15
14:27
(33) универсальная. с небольшими недокументированными особенностями
36 GreatOne
 
07.10.15
14:27
Зачем задачи по строкам? Выполняй задачи из Пособия разраб. Радченко и сертификатов
37 bolobol
 
07.10.15
14:27
+(34) Предлагаю обсудить. Задача нетривиальная...
38 jurassic
 
07.10.15
14:27
(36) рано Радченку ещё
39 bolobol
 
07.10.15
14:32
(31) По строкам задача: Айкнглсиие унычёе внлыясии, что ненжаво в ккоай пеендллоооавссттьи соятт буквы в слоавх, гнлоаве - чотбы перавя и пендлояся блыи венрыми, и тгдоа - ткест сндоовбо чеасиття.

Сделайте обработку для кодирующего передатчика, которая подготовит текст согласно выяснениям английских учёных.
40 Casper21
 
07.10.15
15:33
(22) как добавить чтобы разделители оставались на своих местах?
41 Timon1405
 
07.10.15
15:35
(40) в (15) же рабочий код, что вам еще надо?
42 kosts
 
07.10.15
15:36
(40) выложи свой код, тогда можно будет советовать
43 Адинэснег
 
07.10.15
15:54
кто его компьютеру подпустил?
44 Casper21
 
07.10.15
15:55
(41)извините, но как ее запустить?

Процедура КнопкаВыполнитьНажатие(Кнопка)

       ИсходнаяСтрока = "Привет. кузя, как дела" ;
       Переворот(ИсходнаяСтрока);
       Сообщить(НоваяСтрока);
КонецПроцедуры


Функция Переворот(ИсходнаяСтрока)  экспорт
    НоваяСтрока = "";
    
    СимволыРазделители = " ,.:;()";
    
    Слово = "";
    Для Позиция = 1 по СтрДлина(ИсходнаяСтрока) Цикл
        Символ = Сред(ИсходнаяСтрока,Позиция,1);
        Если Найти(СимволыРазделители,Символ)>0 Тогда// это новое слово

            НоваяСтрока = НоваяСтрока + Слово + Символ;
            Слово = "";
        Иначе
            Слово = Символ + Слово;
        КонецЕсли;
    КонецЦикла;
    
    Если НЕ ПустаяСтрокА(Слово) Тогда
        НоваяСтрока = НоваяСтрока + Слово;
    КонецЕсли;
    
    Возврат НоваяСтрока;
КонецФункции


Ошибку выдает
45 Timon1405
 
07.10.15
16:16
46 Горогуля
 
07.10.15
16:18
по-моему это средние классы в школе с углубленным гуманитарным уклоном
47 Casper21
 
07.10.15
16:21
(46) извини, что я настолько "умен"
48 MaXpaT
 
07.10.15
16:26
(44)
Процедура КнопкаВыполнитьНажатие(Кнопка)

       ИсходнаяСтрока = "Привет. кузя, как дела" ;
       НоваяСтрока = Переворот(ИсходнаяСтрока);
       Сообщить(НоваяСтрока);
КонецПроцедуры
49 Лефмихалыч
 
07.10.15
16:42
Чорной магии и еромантических оргий пост

    Строка = "Какие же вы, ребята, нудные...";
    Наоборот = "";

    RE = New COMObject("VBScript.RegExp");
    RE.Global        = Истина;
    RE.IgnoreCase    = Истина;
    RE.Multiline    = Истина;
    RE.Pattern = "(\s|\,|.|\:|\;|(|)|[|]|{|})+";

    Match = RE.Execute(Строка);
    Строка = RE.Replace(Строка, Символы.ПС);
    для СчХ=1 по СтрЧислоСтрок(Строка) Цикл
        Слово = СтрПолучитьСтроку(Строка, СчХ);
        СтрДлина = СТрДлина(Слово);
        Для СчЦ = 1 по СтрДлина Цикл
            Наоборот = Наоборот + Сред(Слово, СтрДлина-СчЦ+1, 1);
        КонецЦикла;
        Наоборот = Наоборот + Match.item(СчХ-1).Value;
    КонецЦикла;
50 Лефмихалыч
 
07.10.15
16:44
маркап поломал мой регэксп, собака. Там все символы должны быть слэшем экранированы
51 Лефмихалыч
 
07.10.15
16:46
+(49) Иеромантических. Опечатка...
52 За1СьЭтотМир
 
07.10.15
16:47
(0) циклом пройдись побуквенно по строке и формируй новую строку
новая строка = новая строка + символ

Строка для проверки "улыбок тебе дед макар"
53 Casper21
 
07.10.15
16:49
Эх, какой же я тупой (
Чем я думал раньше
54 Лефмихалыч
 
07.10.15
17:21
прям попёрло

Строка = "Привет, как погода?";
Буквы = Новый Соответствие;
Буквы["А"] = Истина; Буквы["Б"] = Истина; Буквы["В"] = Истина; Буквы["Г"] = Истина; Буквы["Д"] = Истина; Буквы["Е"] = Истина; Буквы["Ё"] = Истина; Буквы["Ж"] = Истина; Буквы["З"] = Истина; Буквы["И"] = Истина; Буквы["Й"] = Истина; Буквы["К"] = Истина; Буквы["Л"] = Истина; Буквы["М"] = Истина; Буквы["Н"] = Истина; Буквы["О"] = Истина; Буквы["П"] = Истина; Буквы["Р"] = Истина; Буквы["С"] = Истина; Буквы["Т"] = Истина; Буквы["У"] = Истина; Буквы["Ф"] = Истина; Буквы["Х"] = Истина; Буквы["Ц"] = Истина; Буквы["Ч"] = Истина; Буквы["Ш"] = Истина; Буквы["Щ"] = Истина; Буквы["Ы"] = Истина; Буквы["Э"] = Истина; Буквы["Ю"] = Истина; Буквы["Я"] = Истина; Буквы["Ь"] = Истина; Буквы["Ъ"] = Истина;

Наоборот = "";
Слово = "";
Режим = Истина;
Для СчЦ = 1 по СтрДлина(Строка) Цикл
    Символ = Сред(Строка, СчЦ, 1);
    ЭтоБуква = Буквы[Врег(Символ)] = Истина;
    
    Если Режим <> ЭтоБуква Тогда
        Наоборот = Наоборот + Слово;
        Режим = ЭтоБуква;
        Слово = "";
    КонецЕсли;
    
    Слово = ?(ЭтоБуква, Символ + Слово, Слово + СИмвол);    
КонецЦикла;    
Наоборот = Наоборот + Слово;
    
Сообщить(Наоборот);
55 ptiz
 
07.10.15
17:36
(54) Сатурну больше не наливать....
56 Casper21
 
07.10.15
21:57
(54) Спасибо большое
57 Casper21
 
07.10.15
22:10
(22) и тебе спасибо!
58 EvgeniuXP
 
08.10.15
01:02
ИзвЕнения принимаются :)
59 SiAl-chel
 
08.10.15
08:20
(54) Зачем такие сложности для кодописателя? Не проще ли вот так?

Для Счетчик = 1040 По 1071 Цикл
    Буквы[Символ(Счетчик)] = Истина;
КонецЦикла;
60 SleepyHead
 
гуру
08.10.15
08:45
Автор тролль!
Ошибка? Это не ошибка, это системная функция.