...ошибки и избавление от них...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

...ошибки и избавление от них...

Сообщение Druid-2004 » 15.10.2004 (Пт) 13:13

Как перехватить ошибки?
Дело в том, что я построково читаю файл, но когда цикл проверки файла подходит к концу, и видит, что там пусто, он просто напросто обижается и материт строку "input #1", stroka$....
выскакивает ошибка с номером 62 - что-то про то, что файлу - конец...
... как бы эту ошибку перехватить и завершить цикл?
С уважением, Druid

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2004 (Пт) 13:19

Do Until EOF(1)
Line Input #1, S$
Loop
Lasciate ogni speranza, voi ch'entrate.

Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Сообщение Druid-2004 » 15.10.2004 (Пт) 14:10

alibek писал(а):Do Until EOF(1)
Line Input #1, S$
Loop


Нет, мне нужно остановить примерно такой вот цикл:

private sub cikl()
Open "base.dat" For Input As #1
Nach:
Input #1, stroka$
If stroka$ = " " Then break
If stroka$ <> " " Then
Form2.BaseList.AddItem stroka$
GoTo Nach
End If
end sub

...вернее немного переделать этот...
...я знаю, что можно перехватывать номера ошибок и давать указания, что делать, если ошибка номар такая-то... и т.д.
С уважением, Druid

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 15.10.2004 (Пт) 14:28

Ну тебе же alibek все написал. Цикл будет выполнятся до тех пор, пока не будет получен символ конца файла. И никакой ошибки обрабатывать не надо.

Код: Выделить всё
Private sub Cikl()
Open "base.dat" For Input As #1
Do While Not EOF(1)
    Input #1, stroka$
    Form2.BaseList.AddItem stroka$
Loop
End Sub

Druid-2004
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.08.2004 (Вс) 16:20
Откуда: Трехгорный

Сообщение Druid-2004 » 15.10.2004 (Пт) 14:52

Sedge писал(а):Ну тебе же alibek все написал. Цикл будет выполнятся до тех пор, пока не будет получен символ конца файла. И никакой ошибки обрабатывать не надо.

Код: Выделить всё
Private sub Cikl()
Open "base.dat" For Input As #1
Do While Not EOF(1)
    Input #1, stroka$
    Form2.BaseList.AddItem stroka$
Loop
End Sub


Все-равно та же ошибка

Run-time error '62':
input past and of the file
С уважением, Druid

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.10.2004 (Пт) 14:56

Не Input, а Line Input
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.10.2004 (Пт) 17:56

"GoTo Nach" - рулез. :lol:
"Немецкий язык родственен русскому: и в том, и в другом есть предлог направления 'нах'" (с)
Изображение

Mleha
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 146
Зарегистрирован: 06.10.2004 (Ср) 7:49
Откуда: Ангарск

Сообщение Mleha » 16.10.2004 (Сб) 13:25

Я бы сделал так:

Private sub Cikl()
On Error GoTo ex
Open "base.dat" For Input As #1
Do While Not EOF(1)
Input #1, stroka$
Form2.BaseList.AddItem stroka$
Loop
ex:
Exit Sub
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2004 (Сб) 13:38

Mleha писал(а):Я бы сделал так:

И зря. Зачем здесь обработка ошибок? Достаточно простого цикла "While Not EOF", как и написал alibek.
Про последовательность "Exit Sub: End Sub" даже и не говорю :-)
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 17

    TopList  
cron