Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 24
1

VB6 пишет СЛИШКОМ БОЛЬШАЯ ПРОЦЕДУРА. Как быть?

30.06.2008, 17:02. Показов 1956. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишет при компилляции и останавливается (выделяет) EndSub.

Причем все IF'ы и End IF'ы на месте.
Help!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.06.2008, 17:02
Ответы с готовыми решениями:

Циклический список.слишком большая программа.Как посоветуете облегчить?
#include "mainwindow.h" #include "ui_mainwindow.h" #include<stdio.h> #include<stdlib.h>...

Большая база данных, как быть?
Есть Таблица в БД, в которой пока мало записей, но много столбцов, около 30-40. Не спрашивайте меня...

Слишком большая база
Я впервые создал базу данных в ACCES2000. Размер получился более 1,5 Мб. Другие готовые подобные...

Константа слишком большая
masm model small .stack 1000h .data x dw 0 y dw 0 z dw 0 F ...

7
0 / 0 / 0
Регистрация: 27.11.2007
Сообщений: 60
30.06.2008, 18:09 2
Буквально вчера была та же проблема. В MSDN написано, что объём процедуры не должен (и не может) превышать 64Кб. Выход один - разбивать на отдельные процедуры и функции.
Удачи !
0
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 24
30.06.2008, 18:39  [ТС] 3
Я нарвался на эту ситуацию сам. Дело в том, что я не умею передавать переменные (да что переменные)... ничего не умею передавать в другие процедуры. Как это делается? Есть переменные, но в основном работаю с массивами.
Спасибо.
0
Vita
30.06.2008, 20:07 4
Спрашивай - ответим. Но так нельзя писАть - все в одной! Да еще на 64К!
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 24
01.07.2008, 11:59  [ТС] 5
Ладно, тогда спрашиваю:

1) Как передать в процедуру переменные (и можно ли обойтись без этого)?
2) Для чего нужен Option Explicit?
Спасиб.
0
Vita
01.07.2008, 15:25 6
2) Для чего нужен Option Explicit?
Для проверки. Если задана в начале модуля, то в этом модуле невозможно использовать переменные, которые не объявлены. Т.е. перед использованием переменной, ты ДОЛЖЕН ее объявить. Если не задана, то переменная автоматически создается и тип ее зависит от имени ((?) я точно не знаю) и, как правило, равен Variant. Например, i% - целочисленная, s$ - строковая.

Но лучше явно описывать. Есть опция VB: Tools->Options...->Require Variable Declaration. Я ее установил и VB автоматом добавляет в каждый модуль.

1) Как передать в процедуру переменные (и можно ли обойтись без этого)?
Сначала нужно создать подпрограмму (Sub) или функцию (Function). Функция может возвращать значение, подпрограмма - нет.
Код
Sub XXX(Byval i As Long, j As Long)
  j = i + 1
End Sub
Теперь можно использовать эту Sub:
Код
  Dim k As Long
  XXX 22, k ' или  Call XXX(22, k)
  ' Здесь k равно 23
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 24
02.07.2008, 11:33  [ТС] 7
Немного не так. У меня есть, как Вы говорите, подпрограмма (Sub).
В ней я объяиляю и использую массив Arr_Zakazy(x,y).
Далее я делаю отдельную Sub выводящую этот Arr_Zakazy(x,y) на печать,но В ЭТОМ Sub'e Arr_Zakazy(x,y) уже не видна.
Делать ReDim Preserve что ли? А как быть с НЕМАССИВАМИ (переменными)?

Вобщем вопрос в том как сделать так, чтобы в процедуре печати массив и другие переменные были видны.
0
Vita
02.07.2008, 12:44 8
1. Переменная может быть описана вне Sub.
Код
Dim Arr_Zakazy(10,100) As Variant
Sub XXX1()
  Arr_Zakazy(1,2) = 'что-нибудь'
  Call XXX2
End Sub
Sub XXX2()
  debug.print Arr_Zakazy(1,2)
End Sub
2. Переменная может быть описана в Sub и передана другой Sub.
Код
Sub XXX1()
  Dim Arr_Zakazy(10,100) As Variant
  Arr_Zakazy(1,2) = 'что-нибудь'
  Call XXX2(Arr_Zakazy)
  Call XXX3(Arr_Zakazy)
End Sub
Sub XXX2(A() As Variant) ' Здесь можно тип Arr_Zakazy
  debug.print A(1,2)
End Sub
Sub XXX3(A As Variant) ' Здесь именно Variant
  debug.print A(1,2)
End Sub
Вообще Variant - штука мощная, но можно и явный тип указывать.
02.07.2008, 12:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2008, 12:44
Помогаю со студенческими работами здесь

Слишком большая нагрузка на ЦП
Дело в том,что после установки одной игры с торрента,у меня появился процесс Realtek который...

Константа слишком большая
В общем то вот, очень много таких ошибок, как исправить эту беду ??

Слишком большая длина записи
Добрый день, подскажите, пжлста, импортировала таблицу около 80 текстовых полей. Добавила поле и...

Слишком большая длина записи
Добрый день! При заполнении поля формата "Дата" пишет, что "Слишком большая длина записи", хотя до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru