Текущее время: Чт, июл 24 2025, 06:46

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Вести строку 100 символов. В этой строке надо заменить парные симлолы если они есть
СообщениеДобавлено: Пт, окт 10 2014, 14:16 
Ассистент
Ассистент

Зарегистрирован:
Пт, окт 03 2014, 13:26
Сообщения: 28
Вести строку 100 символов. В этой строке надо заменить парные символы если они есть, и вывести нормальное отображение без дуближа. Интересует именно механизм сравнения!!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вести строку 100 символов. В этой строке надо заменить парные симлолы если они есть
СообщениеДобавлено: Пт, окт 10 2014, 15:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
Code:
replace all occurrences of regex `(.)\1+` in str with `$1`.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вести строку 100 символов. В этой строке надо заменить парные симлолы если они есть
СообщениеДобавлено: Пн, окт 13 2014, 16:27 
Ассистент
Ассистент

Зарегистрирован:
Пт, окт 03 2014, 13:26
Сообщения: 28
А как сделать без использования щетчика переборов!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вести строку 100 символов. В этой строке надо заменить парные симлолы если они есть
СообщениеДобавлено: Чт, окт 16 2014, 21:48 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 09:38
Сообщения: 170
sashoki написал(а):
А как сделать без использования щетчика переборов!

Вам надо проблему решить или чье-то задание выполнить?
Если вам не подходит работающий ответ выше, то может хотя бы :rtfm: ?

Возможно не учел какие-то моменты, нет под рукой дебагера
Code:
DATA:
   lv_input(100)    TYPE c
   , lv_len              TYPE i
   , lv_offset           TYPE i
   , lv_prev            TYPE c
   , lv_output(100)  TYPE c
   , lv_space          TYPE c
   .

   lv_input = 'tttteeesstt    iiinnnpuuut'.
   
   lv_len = STRLEN ( lv_input ).
   
   DO lv_len TIMES.
      lv_offset = sy-index - 1.
      IF lv_offset = 0.
         lv_prev = lv_input+lv_offset(1).
         CONCATENATE lv_output lv_input+lv_offset(1) INTO lv_output.
      ELSE.
         IF lv_input+lv_offset(1) <> lv_prev.
            lv_prev = lv_input+lv_offset(1).
            IF lv_prev IS NOT INITIAL.
               IF lv_space IS NOT INITIAL.
                  CONCATENATE lv_output lv_input+lv_offset(1) INTO lv_output.
               ELSE.
                  CONCATENATE lv_output lv_input+lv_offset(1) INTO lv_output SEPARATED BY space.
                  CLEAR lv_space.
               ENDIF.
            ELSE.
               space = 'X'.
            ENDIF.
         ENDIF.
      ENDIF.
   ENDDO.
   
   write lv_output.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB