Ну это уже ошибки с файловой системой, сетью, и т. п., а такие, как Type Mismatch, Subscript out of Range, Overflow, Division by Zero и всё такое, предотвращаются легко с помощью ифов, а в моих прогах это основные ошибки, которые могут произойти.
Структурно-ориентированное программирование никакого отношение к проектированию не имеет. Я прекрасно помню, что представляло собой линейное программирование. Если у тебя есть сомнения по этому поводу могу порекомендовать всю ту же книжку про носорога.
Речь не о том, чтобы всеми правдами и неправдами исключать из программ goto. Я бы просто не рекомендовал использовать его в теле динамического цикла. Просто зачастую прогр. используют этот оператор просто в силу невежеста, т.к. не знает, "как это сделать по-другому".
Ох, блин, сколько же про этот GoTo слов, ну не одна тема в форуме так не обсуждается
Ладно, поехали. То, что он работает не значительно медленнее, а даже быстрее я тебе доказал, кажется. "Общепризнанный факт" его "значительной медлительности" никто пока не подтвердил, кроме автора книги про носорога и тебя ему поверившего.
Ты не рекомендуешь использовать GoTo в теле цикла. Привожу тебе ссылку из MSDN.
Books\Hardcore Visual Basic\Chapter 1:The Spirit of Basic\Language Purification\Exiting from Procedures
Для тех, кому лазить лениво напишу перевод из книги с переведенной на русский (Hardcore Visual Basic / Bruce McKinney).
"В этом коде нарушается один из принципов структурного программирования: выделять уровнями исключения, но не правилами".
Речь идет об использовании GoTo, обусловленном отсутствием в VB оператора Continue. Блюс Мак-Кинни считает его использование в данном случае оправданным, а код более структурированным!
Я думаю его авторитет в среде программистов на порядки выше твоего и автора книги про носорога.
А про случаи использования GoTo "в силу невежества" и незнания "как это сделать по-другому" здесь никто и не говорил.
Короче, если коротко, три моих тезиса:
1) GoTo при обработке ошибок (слава богу никто кроме Страшный Сон не против этого.
2) Допускаю его использование в циклах, особенно сложных, где необходим эквивалент оператора Continue.
Я знаю, что такое проектирование? Но вот какое отношение проектирование имеет к структурному программированию? Отсюда и возникает подозрение, что ты-то как раз и не знаешь что такое линейная программа.
А ты файл не в массив открывай а в переменную Open "c:\netlog.txt" For Binary As #1 strFile$ = Space$(LOF(1)) Get #1, 1, strFile$ Close 1 А потом уже, после обработки, можно в массив разбить.
Я тут глянул люди про компилятор VB спорят. Да этож Сишный компилятор. Только его отличие от CL в том что он только компилятор, а не компилятор-линковщик. По поводу инструкции GoTo. Мне кажется что она была актуальна в старых версиях Бейсика. То-есть в тех, где каждая строка программы была пронумерована. А сейчас, из-за разбиения кода на процедуры, его можно использовать, а можно и не использовать. Private Sub Form_Load() 5 MsgBox "Input a<>b" 10 a = InputBox("Input a") 20 b = InputBox("Input b") 30 If a = b Then GoTo 5 40 If a = 1 Then GoTo 100 50 If a = 2 Then GoTo 200 100 MsgBox "a = 1": End 200 MsgBox "a = 2": End End Sub А QBasic, в отличие от QB, чистый интерпретатор.
VBшный компилятор - это VBшный компилятор и всё, может, его из сишного слепили... но мне кажется, копмилятор у васика как бы 2 в одном, компилит и в натив, и в P-код.