netrebos
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору relictus Цитата: Цитата: Совершенно верно -- обнавить информационную базу о хранящихся тайлах на гугле без их закачки. Что бы потом уже можно было решеть тратить время на их перезакачку или оставить как есть в собственной базе. | Это касается тайлов взятых из других кэшей и тайлов закачанных без сохрвнения информации. Добавлено: relictus Цитата: Все равно не пойму - чем это отличается от обычной закачки с выбранной опцией пометки отсутствующих тайлов и режимом "не заменять"? | С включенными режимами "не заменять" и "сохранить в кэше информацию". Может быть это вариант, надо попробовать. Вопрос во времени обработки таких заданий. Если одно и то же время тогда можно и такой алгоритм оставить. А если "обновление" будет быстрее -- вот и выигрыш от функции. Добавлено: rex Ты кажется то же любитель пылесоса -- посмотри у тебя проблем с импортом в САС ничего необычного не происходит? Добавлено: relictus Сделай доброе дело, взгляни на поломанный кэш, если, конечно, тебе не сложно забрать 113мб. http://gettyfile.ru/272624/ . Одинаковая ошибка по всем 20 кэшам, которые создавались 20 пылесосами. Ошибка, как мне кажется, возникает именно в базе. Я пытался обработь кэш более старыми версиями программы -- результат тот же. В "шаловливых ручках" тоже себя обвинить не могу -- только капчу вводил. На 10 - 15 пылесосах такого не возникало. Вот тут ниже нашел. Может речь идет об ограничениях количества вариантов мульти к железу при закачке. Проблема возникла процессоре 900 мгц ОЗУ 2гб, работавшем с внешним диском на 40 гб, на котором было 31 гб свободного места. Общий объем задания на загрузку в первом случае не превышал 10 гб, второго -- 1,5 гб. Но разобраться с этим надо -- каким-то образом ошибка перекочевывает в итоговый кэш Satmap через импорт\экспорт. До этого нормально общавшийся с САС кэш, начинает так же глючить. На отображении информации в самой SatMap эта ошибка не отражается. Получилась своеобразная блокировка для конкурентов. А ты жаловался, что твоя программа превращается в универсальный комбайн по конвертации. Экспорт\импорт проблемного кэша в другие программы не пробовал. Цитата: Почему возникает ошибка Access Violation? Ошибка "Access Violation" возникает, когда идёт обращение к памяти к которой обращение запрещено. Это возможно во многих случаях, но наиболее типичные ситуации я попытаюсь перечислить: 1) Обращение к не созданному объекту. var e:TEdit; begin e.text:='Hello world!'; end; В данном случае объект e ещё не создан и идёт обращение к памяти, которая ещё не выделена. 2) Обращение к уже разрушенному объекту: var e:TEdit; begin ... e.free; ... e.text:='Hello world'; end; Тут есть хитрость, допустим вы хотите проверить есть ли объект и модернизируете код: if e<>nil then e.text:='Hello world!'; или if assigned(e) then e.text:='Hello world!'; Особенно часто приходится такое делать когда надо уничтожить объект: if e<>nil then e.free; Так вот - такой код может быть источником ошибки, так как метод Free автоматически не устанавливает указатель в Nil. Обязательно после каждого Free используйте установление указателя в nil: e.free; e:=nil; 3) При выходе за границы динамического массива обычно генерится ошибка "Index out of bound", но возможно и возникновение Access Violation, особенно когда не стоят опции компилляции для проверки границ массивов. Эта ошибка может быть очень сложна в отлаживании - дело в том что допустим у вас есть массив а длиной в 10 элементов, в пишете: a[20]:=something; И эта строка может пройти как и надо, без всяких проблем, но её выполнение повредит какой-то другой код, причём каждый раз другой! Теперь самая безобидная операция типа i:=10 может вдруг внезапно дать Access Violation. 4) На форме на onCreate вызывается что-то с других форм - эти другие формы на этот момент еще не созданы 5) На форме на onDestroy вызывается что-то с других форм - эти другие формы на этот момент уже разрушены | | Всего записей: 447 | Зарегистр. 19-09-2006 | Отправлено: 13:47 27-03-2009 | Исправлено: netrebos, 18:57 27-03-2009 |
|