Текущее время: Пн, июл 28 2025, 14:54

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Обратный поиск в строке
СообщениеДобавлено: Ср, мар 31 2010, 17:01 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
нужна позиция последнего символа-образца в строке

p.s a то что-то совсем дурацкие идеи лезут типа "строку перевернуть, найти первый, а потом обратно и вычислить ;)

_________________
Нет сегодняшних проблем -
есть вчерашние ошибки
(с)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Ср, мар 31 2010, 17:08 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Вт, июн 09 2009, 15:25
Сообщения: 24
Откуда: Москва
Пол: Мужской
Code:
DATA: text TYPE string VALUE 'text',
      pos TYPE i.

pos = STRLEN( text ).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Ср, мар 31 2010, 17:09 
Специалист
Специалист

Зарегистрирован:
Пт, окт 20 2006, 16:39
Сообщения: 230
Skif написал:
нужна позиция последнего символа-образца в строке

p.s a то что-то совсем дурацкие идеи лезут типа "строку перевернуть, найти первый, а потом обратно и вычислить ;)


может недопонял, но чем не подходит
Code:
FIND ALL OCCURRENCES OF   ... MATCH OFFSET
?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Ср, мар 31 2010, 17:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Наверное, оператор FIND с регулярным выражением?

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Чт, апр 01 2010, 06:04 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, авг 05 2008, 19:46
Сообщения: 96
Откуда: С Урала
Skif написал:
нужна позиция последнего символа-образца в строке

p.s a то что-то совсем дурацкие идеи лезут типа "строку перевернуть, найти первый, а потом обратно и вычислить ;)

А я вот так по простому ищу последний символ ( это поиск названия папки из полного имени файла)
Code:
      CLEAR foldlnam.
      flen = STRLEN( fl_name ) - 4 .
      DO flen TIMES.
        i = flen - sy-index.
        IF fl_name+i(1) = '\'.
          foldlnam = fl_name+0(i).
          EXIT.
        ENDIF.
      ENDDO.

Этот код копируется из программы в программу и искать что то другое просто лень...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Чт, апр 01 2010, 08:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Вт, авг 31 2004, 14:57
Сообщения: 5258
Откуда: Ростов невеликий
Пол: Мужской
NickS написал(а):
Skif написал:
нужна позиция последнего символа-образца в строке

p.s a то что-то совсем дурацкие идеи лезут типа "строку перевернуть, найти первый, а потом обратно и вычислить ;)

А я вот так по простому ищу последний символ ( это поиск названия папки из полного имени файла)
Code:
      CLEAR foldlnam.
      flen = STRLEN( fl_name ) - 4 .
      DO flen TIMES.
        i = flen - sy-index.
        IF fl_name+i(1) = '\'.
          foldlnam = fl_name+0(i).
          EXIT.
        ENDIF.
      ENDDO.

Этот код копируется из программы в программу и искать что то другое просто лень...


да-да-да ;)
"cd .." надо отработать ;)
кстати действительно - выделение имени! обычная фича - встречал наверняка и даже недавно
в принципе можно split в табличку, выбросить последнюю запись и снова собрать..
погляжу FIND ещё..
========
find-ом тоже ничего...наверно самый короткий код будет

p.s. пасиб, народ ;)

_________________
Нет сегодняшних проблем -
есть вчерашние ошибки
(с)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Чт, апр 01 2010, 09:21 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
FIND в старой версии вернет "ннашел/не нашел".
А в новой версии, можно и без рег. выражений, так там просто будет offset и длина.

Code:
data: str type string value 'qwwee trytgr ertykl',
      tab type MATCH_RESULT_TAB.

find all OCCURRENCEs OF 't' in str results tab.


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

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обратный поиск в строке
СообщениеДобавлено: Чт, апр 01 2010, 10:33 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Вот, если регэкспами искать (ищем букву 'b'):
Code:
REPORT  zloc_regexp.
DATA
: str TYPE string VALUE '388b34a999aa00b1'
, offs TYPE i
.

START-OF-SELECTION.
  WRITE:/ str.

  FIND REGEX 'b' IN str MATCH OFFSET offs.
  WRITE:/ 'Смещение первого вхождения', offs.

  FIND REGEX 'b[^b]*$' IN str MATCH OFFSET offs.
  WRITE:/ 'Смещение последнего вхождения', offs.

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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