|
|
|
Под ON ERROR - не LOOPится :((
|
|||
|---|---|---|---|
|
#18+
Что-то я в 3 соснах заблудился :(( Как заставить сработать LOOP в следующей ситуации. В переменной asd содержится список файлов (с путями), подлежащих удалению. В качестве разделителя используется символ ‘#’. Если ни один из этих файлов не заблокирован, то все проходит гладко. А если хоть один занят каким-нибудь процессом, то надо перейти к следующему в списке файлу, т.е. – сделать простой LOOP. Но он под управлением команды ON ERROR делаться не хочет: asd=”#C:\TEMP\file1.txt# C:\UPR\file2.mvb# C:\MP123\file3.zxc” && и т.д – список длинный. for i=1 to occurs(‘#’,asd) && Выбор очередного имени файла из asd dsa=substr(asd,at(‘#’,asd,i)+1,iif(i<occurs(‘#’,asd),at(‘#’,asd,i+1)-at(‘#’,asd,i)-1,len(asd))) && Тепер удаляем on error LOOP && Вызывает ошибку в операторе удаления, если удаляемый файл - занят if file(dsa) erase &dsa endif endfor Как сLOOPить в данной ситуации? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 20:04 |
|
||
|
Под ON ERROR - не LOOPится :((
|
|||
|---|---|---|---|
|
#18+
Еще забыл одно. Список файлов обязательно должен содержаться в переменной, т.е., если бы можно было бы держать его в dbf-нике, я бы смог обойти эту проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2007, 20:06 |
|
||
|
Под ON ERROR - не LOOPится :((
|
|||
|---|---|---|---|
|
#18+
А зачем вообще что-то делать в событии ON ERROR? После ошибки ведь и так код пойдет выполняться дальше. Просто подави выдачу сообщения об ошибке. Ну, или присвой значение флагу, если после команды удаления там что-то есть еще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. И, кстати, какая версия FoxPro? Начиная с VFP8 есть TRY...CATCH как раз для подобных локальных ошибок. А разбор строки проще сделать через ALINES() (введена с VFP6) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 00:22 |
|
||
|
Под ON ERROR - не LOOPится :((
|
|||
|---|---|---|---|
|
#18+
To ВладимирМ: Видать, я вчера перетрудился и зациклился... Сегодня утром пришел к тому же выводу: " После ошибки ведь и так код пойдет выполняться дальше " А вот за ALINES() - спасибо, я и вправду как-то на эту функцию не обратил внимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2007, 09:20 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1589473]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 506ms |

| 0 / 0 |
