
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.11.2005, 12:56:49
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
Все мы знаем что АТС находя заданный символ(ы) возвращает номер первого найденного символа. Допустим что есть такая строка а = "asd,zxc,qwe,ert" Через АТС задав нахождение ',' мы будем знать место нахождение только первой ',', а как узнать место нахождение всех остальных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 13:03:16
|
|||
|---|---|---|---|
нахождение символов |
|||
|
#18+
А слабо help по команде ATC поглядеть? Там третий необязательный параметр есть = номеру вхождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 13:08:11
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
НедоходящийВсе мы знаем что АТС находя заданный символ(ы) возвращает номер первого найденного символа. Допустим что есть такая строка а = "asd,zxc,qwe,ert" Через АТС задав нахождение ',' мы будем знать место нахождение только первой ',', а как узнать место нахождение всех остальных? Используй функцию OCCURS() Возвращает число вхождений некоторого символьного выражения в другое символьное выражение. Синтаксис OCCURS(cSearchExpression, cExpressionSearched) Параметры: cSearchExpression - Задает символьное выражение, которое функция OCCURS( ) ищет в выражении cExpressionSearched. cExpressionSearched - Задает символьное выражение, которое OCCURS( ) просматривает в поисках cSearchExpression. Результат: Числовой Комментарии Функция OCCURS( ) возвращает 0 (ноль), если выражение cSearchExpression не найдено в выражении cExpressionSearched. А дальше надеюсь легко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 13:17:59
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
Команда atc имеет еще один последний параметр, он числовой и указывает какое вхождение символа искать atc([q,q,e,t],s,2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 13:45:37
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
Спасибо Владимир СА. А то для сравнения использую АТС. теперь еще. Вот код в котором я поочередно вырезаю строки rep_col_name = "asd,sdg,nyt,xcvsdf" rep_cn=1 do while .t. rep_second = atc(',',rep_col_name,rep_cn) if rep_cn = 1 rep_first = 1 endif rep_cn=rep_cn+1 if rep_second = 0 exit endif set step on rep_add_name = substr(rep_col_name,rep_first,rep_second-1) select grid_names append blank replace colomn_names with rep_add_name rep_first =rep_second+1 enddo Проблема вся в том что когда после первого вырезание "asd" последующие значения идут "sdg,nyt" а не "sdg". Т.е. попарно получается. Почему так? В чем ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 15:03:31
|
|||
|---|---|---|---|
нахождение символов |
|||
|
#18+
А не проще всё это через GetWordNum() и GetWordCount() сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 16:26:15
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
инициализация этой функций не найдется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.11.2005, 20:54:13
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
Недоходящийинициализация этой функций не найдется?Примерно так: Если VFP80, то действительно, как указал AleksMed , удобнее использовать GetWordCount и GETWORDNUM Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.11.2005, 10:30:03
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
2 Владимир СА Да. Это то мне и нужно для вфп6. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.11.2005, 11:10:41
|
|||
|---|---|---|---|
|
|||
нахождение символов |
|||
|
#18+
В VFP версиях ниже, чем 7, эти функции доступны с помощью библиотеки foxtools.fll Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.11.2005, 19:32:07
|
|||
|---|---|---|---|
нахождение символов |
|||
|
#18+
Для VFP6 можно использовать функцию ALINES(), предварительно заменив символы запятой на символы CHR(13) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Получишь массив, каждый элемент которого - это фрагмент исходной строки разделенной запятыми. Т.е., например, второе слово - это будет laWords(2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1593128]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
439ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 193ms |
| total: | 743ms |

| 0 / 0 |
