|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Zuzaz
![]() Как часто случается, это задание недостаточно формализовано. Без уточнения ряда вопросов по формату номера предлагать варианты бесполезно:
1) вначале всегда идут буквы ? их всегда две, как в примере, или может быть любое число? 2) между начальным и конечным набором букв цифры всегда идут со слешем, или могут быть только цифры ? Могут ли вместо слеша быть и другие знаки, например тире или точка? 3) количество знаков между первым и конечным набором букв всегда одинаково, или может быть любым? 3) в конечном наборе буква всегда одна, или их может быть две и больше ? 4) в конечном наборе всегда идут буквы и потом цифры, или могут быть другие варианты (например, только буквы;буквы, цифры и снова буквы) ? Сколько цифр может быть после последней буквы ? 5) и наконец ключевой вопрос: зачем нужно такое преобразование, какая исходная постановка задачи? Может быть, исходная задача решается другим, более простым способом ? Или может быть, исходная задача такова, что и ваш способ с преобразованием номера её не решит ? Если подходить формально, решая задачу именно так, как она вами записана, то это так: X++: S2 = substr(S1,3,9) ![]() 2. Далее идут цифры (тоже непонятно сколько ) разделение слеш и ещё несколько цифр... вот в первый заход их нужно получить. 3. Потом идёт буква Р после неё цифры. Второе значение у меня должно как раз ему равнятся... то есть если первоначально было ППРРВ12345/45Р5, то должно получится два значения: первое 12345/45 и второе 5 |
|
![]() |
#2 |
Участник
|
Цитата:
X++: s1 = strkeep(s1, '1234567890/'); P.S. Согласен с Gustav, делить строку с помощью str2con_RU более оптимальный вариант |
|
![]() |
#3 |
Moderator
|
|
|
![]() |
#4 |
Участник
|
Цитата:
а ещё маленький вопрос как впереди первого значения поставить "*" ? то есть формируется у меня номер например накладной.. X++: modifSalesPickingListId = strRem(SalesPickingListJournalTable.SalesId, 'зсчЗКП'); //обрезаем символы заказа и закупки modifSalesPickingListId = modifSalesPickingListId + '/' + pickingId; мне казалось , J - это '*', или я что-то путаю? Последний раз редактировалось fialka; 29.06.2007 в 09:39. |
|
![]() |
#5 |
Moderator
|
|
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Возможно, это специфика формата той "доаксаптовской" базы, откуда переносились данные при переходе на Аксапту.
|
|
Теги |
ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|