| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > После loop функция прекращается |
| Автор: neiron 18.4.2006, 15:19 | ||
Не пойму в чём проблема:
В общем, выход из процедуры происходит после выполнения первого цикла. Как я понимаю, дело не в коде, а в настройках vb... что может быть? в других местах программы do...while тоже есть, есть вложенные, и всё работает... Ток те места я писал до переустановки винды (а вместе с ней и самого vb). Где флажок поставить?))) |
| Автор: Akina 18.4.2006, 15:35 |
в т.ч. при пошаговом выполнении? бей код на блоки - где-то накосячил. |
| Автор: boevik 18.4.2006, 15:46 |
| Проблематичный код. Если EOF вернет false, то цикл бесконечен, потому что нет чтения из файла. В этом случае, файл видемо пуст и EOF возвращает true, поетому цикл не выполняется, значение i остается равным 0 и при попытке выполнить redim размером -1 возникает ошибка. Могу предположить, чтп в вызывающей функции есть On Error Resume Next поэтому, управления передается команде следующей за вызовом функции Zag_Dan. |
| Автор: neiron 18.4.2006, 21:29 | ||
| Akina, ессно пробовал... loop проходит и переходит к следующей процедуре, а именно к mainform. Если убираю первый блок do...loop, то второй работает нормально... выход происходит именно после первого завршённого цикла (сам цикл работает нормально). boevik, чтение из файла есть - иначе как бы i изменялось... проверено на пошаговой;) а на redim ошибка не возникает, так как до redim дело вообще не доходит))) А файл не пустой уж точно - при прямом открытии (пропись файла и его длины в коде) всё работает как надо... On Error Resume Next нет... А если ошибка (cancel) и случается, то вообще не приводит к вызову Zag_dan. Но вызов есть...
Всё-таки я думаю, что ошибка именно в vb самом... поскольку пробуя вставлять всё тот же do loop в другие проццедуры, получал то же самое - исполняется первый блок, а всё что за ним просто игнорируется... |
| Автор: neiron 18.4.2006, 22:36 |
| всё понял, спасибо... |