Вопрос (работа) для профи (хакеров) - глюк Excel 97 SR-2

Программирование на Visual Basic for Applications
Serg61
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 22.09.2003 (Пн) 20:25

Вопрос (работа) для профи (хакеров) - глюк Excel 97 SR-2

Сообщение Serg61 » 22.09.2003 (Пн) 20:55

Работа для Профи (Хакера).
Я наступил на очень серьезный глюк в Excel 97-SR2.
В Excel - 2000, XP и чистом 97 его нет, про 97 SR-1 не знаю.
Суть проблемы в следующем:
Если в книге используются Имена (именованные ячейки), то похоже Excel 97 SR-2 их кеширует с ошибкой. Возможно алгоритм вылетает за область памяти выделенную под переменные, и накрывает что-то другое. Потом накрывает пользователя (точнее перекрывает). Отсюда многочисленные потери файлов при переходе с 2000 на 97.
Что предлагаю: под отладчиком найти алгоритм кеширования переменных и проанализировать его.
Интуиция подсказывает, что глючат имена с русскими маленькими буквами.
Для тестирования подойдет имя "пи".
Для хакеров которые не знают Excel, поясняю как определить имя:
1. Откройте чистую книгу.
2. Наберите в первой ячейке "пи" (без кавычек, маленькие)
3. Стоя на этой ячейке нажать ^F3 - ok.
4. Закрыть с сохранением.
5. Открыть книгу в Excel 97 SR-2.
6. Удивится тому, что в книге есть макросы!!! (т.е. адрес переменной "пи" попал в область программного кода).
Ну, что Слабо?
:shock:

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 22.09.2003 (Пн) 23:23

только вот интересно зачем ? а :?:
Ничто так не ограничивает полёт мысли программиста, как компилятор

Serg61
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 22.09.2003 (Пн) 20:25

Сообщение Serg61 » 23.09.2003 (Вт) 11:58

Чтобы иметь рекомендации о "плохих" именах. Это важно если создается продукт раcсчитанный на эксплуатацию в разных средах Excel-a.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.09.2003 (Вт) 12:51

А зачем переходить с 2000 на 97 :shock: Excel? Просто на самом деле вопрос из чистого любопытства...

Serg61
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 22.09.2003 (Пн) 20:25

Сообщение Serg61 » 23.09.2003 (Вт) 15:51

Иногда некоторые люди пишут программы для других людей. Их может быть много. Причем у последних может стоять различный Excel.
Посущесту ошибки - я заметил, что это мина замедленого действия в 97 при росте файла в какой-то момент файл просто разрушается.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.09.2003 (Вт) 16:00

Вообще-то программа пишется на той же платформе, на которой она и будет работать. Либо у разработчика ставится платорма клиента, либо клиент доводит свою материально-техниескую базу до нужного уровня.

А делать так, что "я напишу это под 2000" а работать это будет на 97 это, простите, непрофессионально по меньшей мере.

Serg61
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 22.09.2003 (Пн) 20:25

Сообщение Serg61 » 23.09.2003 (Вт) 16:20

Программы бывают разные. Эти замечания подходят только для разового заказа, а не "ширпотреба". Ктобы пользовался WinRar если бы от только работал в Win 2K :D
Поверьте мне ширпотреб можно написать и на Excel-e, если Вы не знаете таких задач, то это не значит, что их нет. :P

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.09.2003 (Вт) 16:39

Тогда пиши все в самой низшей версии доступного средства разработки. В данном случае ориентируся на 95 ексел :)

А вообще, даже выпуская ширпотребный солюшен, вполне логично предъявить к системам, в которых он будет работать, некие требования. Причем сориентироваться уже на стадии разработки. И писать нечто, пердназначнное изначально для екселя не ниже скажем 97 или 2000. И не пытаться сделать чтото, что будет работать везде от 95 до ХР, потому что никто не будет использовать макросы 95 в ХР - в них попросту не используется новая функциональность да и потом, объектная модель попросту другая.



Резюме такое - надо конкретно представлять себе то, подо что пишете.

Tony
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 121
Зарегистрирован: 03.08.2002 (Сб) 14:36
Откуда: Russia.EKB

Сообщение Tony » 23.09.2003 (Вт) 18:11

так а теперь для тех кто в танке.... :oops: ЗАЧЕМ ПРИСВАИВАТЬ ЯЧЕЙКЕ ИМЯ? у нее же есть адрес.... этого всегда было достаточно... может я простоне не в курсе... может мне от этого жить легче станет... расскажите....
__________________
счастье в секундах, маленьких острых... щедрое к детям и скупое для взрослых...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.09.2003 (Вт) 18:15

RTFM :) Зачем нужны именованные диапазоны.. Это вопрос класса того "что мне делать мышкой" :)

Serg61
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 22.09.2003 (Пн) 20:25

Сообщение Serg61 » 23.09.2003 (Вт) 23:50

Что не туда пошла дискуссия... :(
95- уже история, 97 по моим оценкам 30-40% пользователей.
Именованная ячейка позволяет НЕ ПЕРЕПИСЫВАТЬ текст программы если, что-то сделал с листом - вставил строки и т.д.
У ней есть свойство - Names("ИМЯ").RefersToRange - доступ к значению. Когда объемы данных и тексты программ большие - это неплохой инструментарий.
Именованный диапазон это другое, не о нем речь.
Поставлю вопрос по другому - кто знает хорошие форумы где есть спецы по взлому программ. Похоже этот вопрос надо задавать там. :roll:

mvandrew
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2002 (Сб) 11:29

Сообщение mvandrew » 24.09.2003 (Ср) 3:01

Серж, я могу тебе исправить, но только это не безвозмездно! :) Вообще, думаю, твоему заказчику будет дешевле перейти на нормальную версию.

Tony
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 121
Зарегистрирован: 03.08.2002 (Сб) 14:36
Откуда: Russia.EKB

Сообщение Tony » 24.09.2003 (Ср) 6:29

RayShade писал(а):RTFM :) Зачем нужны именованные диапазоны.. Это вопрос класса того "что мне делать мышкой" :)


Нет конечно посмеяться над не знающим можно.... не вопрос... Хотя если бы был ответ было бы лучше.... хотя не настаиваю...
__________________
счастье в секундах, маленьких острых... щедрое к детям и скупое для взрослых...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.09.2003 (Ср) 8:46

Вот тебе еще один прикол. Попробуй задав в локализованной (руссифицированной) версии Excel для листа имя "Журнал", тебя ждут сюрприз.
Вернее даже два сюрприза, если ты попробуешь ввести букву "Ж" как Shift+ж.
Lasciate ogni speranza, voi ch'entrate.

mvandrew
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 21.09.2002 (Сб) 11:29

Сообщение mvandrew » 24.09.2003 (Ср) 8:53

Меня больше всего умиляет тот факт, что через пару месяцев выходит новый офис, а мы тут обсуждаем глюки Excel давно устаревшего! :x


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 89

    TopList