|
26.12.2012, 11:52
|
#1
|
AnyKey`щик
Регистрация: 27.08.2007
Сообщений: 17
Написано одно полезное сообщение
|
Разъясните с условиями пожалуйста
Имею такую функцию:
Function LoadProject (path$ = "")
If path$ = "" RuntimeError "Отсутствует фаил проекта!" + Chr$ (13) + " Укажите правильный путь!"
project = ReadFile (path$)
If project = 0 RuntimeError("Отсутствует фаил!")
While Not Eof(project)
ln$ = ReadLine$(project)
;/---------------Загрузка главной модели
If Instr (ln$, "#model = ", 1) Then
path_file$ = Mid$ (ln$, 10)
If path_file$ <> "" Then model = LoadAnimMesh (path_file$)
EndIf
;---------------/
If (model = 0) Then RuntimeError ("Модель не создана!")
If Instr (ln$, "#child = ", 1)
lst.children = New children
lst\mesh_chld = FindChild (model, Mid$(ln$, 10))
If lst\mesh_chld <> 0 EntityColor lst\mesh_chld, Rnd (255), Rnd (255), Rnd (255)
EndIf
Wend
End Function
проблемма в том, что когда коментируеш условие
If (model = 0) Then RuntimeError ("Модель не создана!")
все работает
если оставляеш как есть, model начинает равнятся нулю
чего я не знаю, подскажите пожалуйста
переменную model ставил и глобальной для программы, и локальной для данной функции, результат один. затыкается на этом месте.
PS ну не присваивается же в условии этой переменной ноль?
|
(Offline)
|
|
26.12.2012, 12:23
|
#2
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Разъясните с условиями пожалуйста
Перед означенной строкой сделай
И скажи значение в обоих случаях.
PS ну не присваивается же в условии этой переменной ноль?
|
Вот я сначала тоже подумал про эту хрестоматийную ошибку, но вспомнил, что Блица это не касается (у него нет отдельно операторов сравнения и присвоения)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.12.2012, 12:31
|
#3
|
AnyKey`щик
Регистрация: 27.08.2007
Сообщений: 17
Написано одно полезное сообщение
|
Ответ: Разъясните с условиями пожалуйста
Да то же самое и пишет. Когда комментируеш, выводит длинный номер, по которому так понимаю хранится эта модель.
Вставил эту же команду в это условие, отключив RuntimeError, там выдает ноль, дальше эта же команда (DebugLog(model)) выдает опять номер модели.
|
(Offline)
|
|
26.12.2012, 12:36
|
#4
|
AnyKey`щик
Регистрация: 27.08.2007
Сообщений: 17
Написано одно полезное сообщение
|
Ответ: Разъясните с условиями пожалуйста
Я пробывал поступить иначе... В условии If Instr (ln$, "#model = ", 1) Then
вставлял дополнительную переменную, которая в начале функции равняется нулю, а когда попадается `#model =` начинает равнятся единице. И вот чудо, проблемма та же. Хотя если исключаеш влиение этой переменной (ну так же коментируеш с ней условие), все сново работает.
|
(Offline)
|
|
26.12.2012, 12:41
|
#5
|
AnyKey`щик
Регистрация: 27.08.2007
Сообщений: 17
Написано одно полезное сообщение
|
Ответ: Разъясните с условиями пожалуйста
Нашел проблемму
Естественно САМ дурак.
Если интересно опишу.
В файле проекта, первая строчка должна идти #model = xxx.3ds
если другая, то естественно в первом проходе цикла model = 0, и RuntimeError просто останавливает программу, спасибо за полезную команду... никогда раньше не пользовался (debugLog)
PS реально полезная команда. Избавляет от написания кучи проверочных строк, которыми у меня программы просто кишили, что бы отследить состояние переменных
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
26.12.2012, 17:00
|
#6
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Разъясните с условиями пожалуйста
Сообщение от kostya261
Нашел проблемму
Естественно САМ дурак.
Если интересно опишу.
В файле проекта, первая строчка должна идти #model = xxx.3ds
если другая, то естественно в первом проходе цикла model = 0, и RuntimeError просто останавливает программу, спасибо за полезную команду... никогда раньше не пользовался (debugLog)
PS реально полезная команда. Избавляет от написания кучи проверочных строк, которыми у меня программы просто кишили, что бы отследить состояние переменных
|
Рад что ты подружился с дебаггером Многие новички им пренебрегают и потом сыплют глупыми вопросами.
Есть ещё Stop: можно остановить программу и в дебаггере посмотреть значения переменных в данный момент, а потом продолжить выполнение.
не забывай отключить дебаггер, когда компилишь "на релиз" (а потом назад включить).
|
(Offline)
|
|
28.12.2012, 15:49
|
#7
|
AnyKey`щик
Регистрация: 27.08.2007
Сообщений: 17
Написано одно полезное сообщение
|
Ответ: Разъясните с условиями пожалуйста
Спасибо за советы. Учту.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:19.
|