|
|
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
Все мы знаем что АТС находя заданный символ(ы) возвращает номер первого найденного символа. Допустим что есть такая строка а = "asd,zxc,qwe,ert" Через АТС задав нахождение ',' мы будем знать место нахождение только первой ',', а как узнать место нахождение всех остальных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 12:56:49 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
А слабо help по команде ATC поглядеть? Там третий необязательный параметр есть = номеру вхождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:03:16 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
НедоходящийВсе мы знаем что АТС находя заданный символ(ы) возвращает номер первого найденного символа. Допустим что есть такая строка а = "asd,zxc,qwe,ert" Через АТС задав нахождение ',' мы будем знать место нахождение только первой ',', а как узнать место нахождение всех остальных? Используй функцию OCCURS() Возвращает число вхождений некоторого символьного выражения в другое символьное выражение. Синтаксис OCCURS(cSearchExpression, cExpressionSearched) Параметры: cSearchExpression - Задает символьное выражение, которое функция OCCURS( ) ищет в выражении cExpressionSearched. cExpressionSearched - Задает символьное выражение, которое OCCURS( ) просматривает в поисках cSearchExpression. Результат: Числовой Комментарии Функция OCCURS( ) возвращает 0 (ноль), если выражение cSearchExpression не найдено в выражении cExpressionSearched. А дальше надеюсь легко... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:08:11 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
Команда atc имеет еще один последний параметр, он числовой и указывает какое вхождение символа искать atc([q,q,e,t],s,2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 13:17:59 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#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, 13:45:37 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
А не проще всё это через GetWordNum() и GetWordCount() сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 15:03:31 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
инициализация этой функций не найдется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 16:26:15 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2005, 20:54:13 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
2 Владимир СА Да. Это то мне и нужно для вфп6. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2005, 10:30:03 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
В VFP версиях ниже, чем 7, эти функции доступны с помощью библиотеки foxtools.fll Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2005, 11:10:41 |
|
||
|
нахождение символов
|
|||
|---|---|---|---|
|
#18+
Для VFP6 можно использовать функцию ALINES(), предварительно заменив символы запятой на символы CHR(13) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Получишь массив, каждый элемент которого - это фрагмент исходной строки разделенной запятыми. Т.е., например, второе слово - это будет laWords(2) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2005, 19:32:07 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33359918&tid=1593128]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 488ms |

| 0 / 0 |
