Вопросы по исходному коду
- uni
- Новичок
- Сообщения: 5
- Зарегистрирован: 26 янв 2013, 03:55
- Откуда: Россия, Екатеринбург
- Контактная информация:
Re: Вопросы по исходному коду.
Да, я сам не заметил опечатки. Дело в том, что я не поиском искал эту функцию, а по логике работы пытался найти концы и постепенно пришёл к этой функции, а когда увидел тут ответ, то оказалось что у меня среда открыта как раз на ней (правда тут советовали посмотреть на TMapType.LoadBtimapUni - в ней тоже опечатка).
Вот ещё несколько похожих опечаток (см. картинку). Их можно было бы быстрее исправлять, если делать поиск по всем файлам проекта при нахождении какой-то одной похожей опечатки. Такого рода ошибки появляются от техники copy-paste. Видимо тогда, когда писали код, не была доступна функция автодополнения (intellisense) в среде.
Вот ещё несколько похожих опечаток (см. картинку). Их можно было бы быстрее исправлять, если делать поиск по всем файлам проекта при нахождении какой-то одной похожей опечатки. Такого рода ошибки появляются от техники copy-paste. Видимо тогда, когда писали код, не была доступна функция автодополнения (intellisense) в среде.
Россия навсегда!
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
Да что вы говоритеuni писал(а):Такого рода ошибки появляются от техники copy-paste. Видимо тогда, когда писали код, не была доступна функция автодополнения (intellisense) в среде.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
- uni
- Новичок
- Сообщения: 5
- Зарегистрирован: 26 янв 2013, 03:55
- Откуда: Россия, Екатеринбург
- Контактная информация:
Re: Вопросы по исходному коду.
Это очень просто. Достаточно взглянуть на картинку и убедиться, что часть ошибок сделана при присваивании, так ведь? Разве может программист постоянно при присваивании ошибаться в написании, нет, не может. Это говорит о том, что он копировал название функции. При автодополнении же обычно пишешь много буковок, пока оно соображает и выдает список с фильтрацией по методам. Даже если ты ошибся в написании нового метода, то его использование без копипаста обязательно проявит ошибку, так как в списке автодополнения может просто не быть того метода, что записал, или в 2-3 вариантах мозг найдет ошибку, так при копипасте ты полагаешься на буфер обмена и отключаешь в мозгу проверку написания. Вот так, вроде понятно написал.
Россия навсегда!
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
Нет. Это говорит как раз о том что я воспользовался подсказкой автодополнения кода набрав только "LoadB" и оно выдало мне подходящий вариант, в который я не вчитывался. Поверьте я лучше знаю как я пишу код и как туда пролазят опечаткиuni писал(а):Разве может программист постоянно при присваивании ошибаться в написании, нет, не может. Это говорит о том, что он копировал название функции
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Вопросы по исходному коду.
В юните u_VectorDataFactorySimple.pas на вход каждой процедуре подаётся некий
он никак не задействован, всегда равен nil и назначение его неясно.
Вопрос: какова смысловая нагрузка этого указателя?
Код: Выделить всё
const AIdData: Pointer;Вопрос: какова смысловая нагрузка этого указателя?
- vdemidov
- Гуру
- Сообщения: 1687
- Зарегистрирован: 12 дек 2008, 13:10
- Откуда: Киев
- Благодарил (а): 191 раз
- Поблагодарили: 157 раз
Re: Вопросы по исходному коду.
Кто сказал, что всегда nil. Загляни в юнит u_VectorDataFactoryForMapzed писал(а):он никак не задействован, всегда равен nil и назначение его неясно.
Вопрос: какова смысловая нагрузка этого указателя?
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
-
zed
- Гуру
- Сообщения: 2888
- Зарегистрирован: 16 авг 2008, 20:21
- Благодарил (а): 89 раз
- Поблагодарили: 568 раз
Re: Вопросы по исходному коду.
Кто в курсе, есть ли в WinInet, которым мы активно пользуемся для закачки карт, некое подобие DNS кэша? Просто, если нам надо скачать миллион тайлов, и при этом по каким-то причинам у нас будет "Connection: Close", мы будем ресолвить ip этот самый миллион раз? И может стоит, в таком случае, озаботиться своим небольшим DNS-кэшем?
Re: Вопросы по исходному коду.
Будем. Но не до DNS-сервера (то есть не как nslookup). А в худшем случае до локальной службы DNS Client (если она конечно запущена).zed писал(а):если нам надо скачать миллион тайлов, и при этом по каким-то причинам у нас будет "Connection: Close", мы будем ресолвить ip этот самый миллион раз?
Хотя подозреваю что кэш на 1 текущий ip-шник в wininet есть (так как IE умеет группировать запросы в одно соединение).
Написать свою службу DNS Client? ))zed писал(а):И может стоит, в таком случае, озаботиться своим небольшим DNS-кэшем?
Или по каким-то причинам время доступа к ней не устраивает?
Re: Вопросы по исходному коду.
Подскажите, пожалуйста, где мне найти функцию, которая загружает тайлы с сервера.