|
|
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Сабж коротенько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 13:30 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Проблема у меня. Имеется таблица, у нее поля с именами (все поля не показываю, но часть из них): Crcode, C199801, C199802, ... не я создавал таблицу, но взять данные необходимо. Мне нужно просматривать значения полей C199801, C199802, ... Думаю это сделать через TRY ENDTRY ??? Пустил тестовый пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А мне надо чтобы был выход по EXIT. Вот и прошу расскажите немного о TRY ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:00 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Up! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:12 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Guest_125Проблема у меня. Имеется таблица, у нее поля с именами (все поля не показываю, но часть из них): Crcode, C199801, C199802, ... не я создавал таблицу, но взять данные необходимо. Мне нужно просматривать значения полей C199801, C199802, ... Думаю это сделать через TRY ENDTRY ??? Пустил тестовый пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. А мне надо чтобы был выход по EXIT. Вот и прошу расскажите немного о TRY ??? К сожалению, отошел в последнее время от FoxPro в сторону С++... Но немного могу рассказать по сабжу (на основе С-шных знаний). Операторным блоком TRY-CATCH-FINALLY окружают группу операторов, выполнение которых может спровоцировать ошибку. При этом операторы в блоке FINALLY выполняются ВСЕГДА(!), при любом раскладе (не важно, произошла или нет ошибка)! Так что, после выполнения инструкций из CATCH'a ты переместишься в блок FINALLY, а не на оператор ?m.n_1. Если тебе нужен выход по CATCH - просто убери блок FINALLY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:14 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
TRY..... CATCH ... ENDTRY - это обратка исключительных ситуаций, т.е. ошибок, которые вы не можете предотвратить программным способом. Как правило такие ситуации возникают при обращении к внишним (по отношению к VFP) программным объектам (файлы, OLE ии пр.). Все остальные ошибки (это мое мнение) надо предотвращать, а не реагировать на них в TRY. Изложите вашу проблему. Я уверен, что ее можно решить не доводя до TRY(TYPE() и пр.) С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:17 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Hi, Станислав C. Спасибо за разъяснение про FINALLY Aleksey-K...Изложите вашу проблему. Я уверен, что ее можно решить не доводя до TRY(TYPE() и пр.) Может быть действительно вверху я плохо объяснил свою ситуацию. Имеется таблица, у нее поля с именами (все поля не показываю, но часть из них): Crcode, C199801, C199802, ... не я создавал таблицу, но взять данные необходимо. И переложить на сервер в другом более правильном порядке. Мне нужно просматривая записи пробежаться по полям и выбирать данные только у полей имена которых начинаются с символа "C" а дальше числовое значение типа C199801, C199802, ... Но в таблице имеются поля которые тоже начинаются с символа "C", например Crcode, то это поле должно пропускаться и не обрабатываться. Имеют место и другие поля, но имена их начинаются с других символов. Если что-то непонято могу ответить на вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:34 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Ну тогда проще всего через TYPE IF TYPE("C199801") = "N" .... ENDIF С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 14:42 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Aleksey-KНу тогда проще всего через TYPE IF TYPE("C199801") = "N" .... ENDIF Извини, видимо я опять плохо объяснил. Мне нужно рассматривать все поля, имена которых начинаются с символа "C" а дальше число. Типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. Я думал осуществлять проверку через TRY Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 15:01 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Guest_125 Aleksey-KНу тогда проще всего через TYPE IF TYPE("C199801") = "N" .... ENDIF Извини, видимо я опять плохо объяснил. Мне нужно рассматривать все поля, имена которых начинаются с символа "C" а дальше число. Типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. Я думал осуществлять проверку через TRY Код: plaintext Странно... А я всегда думал, что если в функцию VAL() передали строку из букв, то она возвращает не ошибку, а число 0... Я ошибался?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 15:21 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 15:21 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
PaulWist Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Мне нуно найти не именно поле с каким-то именем. А анализировать ВСЕ поля начинающиеся с символа "C" , а со второго символа цифры. Типа: C199801. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 15:39 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Станислав C.Странно... А я всегда думал, что если в функцию VAL() передали строку из букв, то она возвращает не ошибку, а число 0... Я ошибался?!Ты прав, значит критерий Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 15:44 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 16:18 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
2 Guest_125 Попробуй так: p_str = "C199801" if AT("C",p_str) = 1 then p_str_t = SUBSTR("C123",2,LEN("C123")) for n_count = 1 to LEN(p_str_t) p_type = ISDIGIT(SUBSTR('123',n_count)) if p_type= .f. then =Messagebox("Неподходит!!!!") exit endif next n_count endif if p_type= .t. then =Messagebox("YES,YES,YES!!!! ЦЭ ВОНО!!!!") endif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 16:34 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Hi, PaulWist и Недоходящий ! Да, действительно можно и скорее всего нужно использовать функцию ISDIGIT() и проверять имя поля начиная со второго символа. Спасибо всем!!! Конечно вышел из ситуации. Но об идеологии команды TRY так и нерассказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 06:41 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Можно проще: Код: plaintext 1. 2. 3. 4. 5. 6. Поскольку имя поля не может начинаться с цифры, то можно не учитывать такую ситуацию и заменять все цифры на пустую строку. Надо только проконтролировать что все имя не состоит из одной буквы "C" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 12:36 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Класс! Спасибо ВладимирМ ! Вы не сможете ответить коротенько по самому сабжу. А то с английским туговато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 13:11 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Я так оформил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:04 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Вот перевод статьи HELP по TRY...CATCH (правда, для VFP8) http://www.foxhelp.ru/TryCatchFinallyKomandaVFP8?v=pi1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:07 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Немного короче Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:08 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
ВладимирМВот перевод статьи HELP по TRY...CATCH (правда, для VFP8) http://www.foxhelp.ru/TryCatchFinallyKomandaVFP8?v=pi1 Спасибо ВладимирМ, буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 14:17 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Try есть в 7 fox'e? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 20:50 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
332_johnTry есть в 7 fox'e? Нет. Была введена только в версии VFP8. В ранних версиях FoxPro необходима симуляция при помощи настройки On Error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 21:03 |
|
||
|
Расскажите немного о команде TRY
|
|||
|---|---|---|---|
|
#18+
Hi Guest_125! TYPE(SUBSTR(m.c_field, 2, 6)) = "N" Будет .T. если символы имени со 2-го по 7-й это цифры (но имя может быть короче 7-ми символов!). Конечно там-же может быть "ведущий" пробел, точка/запятая и минус/дефис - но я сомневаюсь что в имени поля это встретится :) Чуть более строгая проверка: SUBSTR(m.c_field, 2, 6) = STR(VAL(SUBSTR(m.c_field, 2, 6)), 6) Тут будет проверена и длинна имени (если имя короче чем 7 символов, то будет возвращено .F.) - тут тоже будет неверный ответ если есть "ведущие" пробелы (т.е. если проверяется строка типа "C 12345") - но для имён полей в dbf это маловероятно. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 02:22 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33547628&tid=1592336]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 479ms |

| 0 / 0 |
