![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
простейшая прога весит 300 кб... [D5, WinXP]
heruvim4ik © (2002-03-09 14:32:00)Ещё один вопрос:
Например, создаю я простейшую программу, которая... ну не знаю... два числа складывает... а она весит > 300 кб... может я чё не так делаю???
Андрей Сенченко (2002-03-25 19:07:00) [1]-=GaLaN=- © (25.03.02 18:54)
Ну мне то помагало. После того, как SysUtils до 2-х нужных мне функций покоцал - значительно легче стало.
-=GaLaN=- (2002-03-25 18:54:00) [2]Говорю же - пробовал - не помогает.
Alex_LG (2002-03-25 14:50:00) [3]всё улучшится - не такой он уж и "smart" :0)
-=GaLaN=- (2002-03-25 01:36:00) [4]2Андрей Сенченко:
> Ну если не лениво или размер настолько критичен, что это необходимо - просто пройди по объявленным в программе модулям (Windows, SysUtils и т.п. ) и скопируй оттуда все необходимые Тебе функции и процедуры в свой проект.
И ничего не улучшится. Потому что как уже было сказано компилятор в дельфи smart и лишнее все равно не добавляет.
vedmed (2002-03-19 15:41:00) [5]Еще насчёт сравнения файлов см. http://rpi.net.au/~ajohnson/delphiкомпонент TDiff
Andrey007 (2002-03-19 14:30:00) [6]Насчёт сравнения файлов. В состав всех ОС от MS входит программа File Compare (fc.exe). Она запускается в консольном окошке и выплёвывает в него результаты сравнения. Но можно сделать и так, чтобы результаты сравнения двух файлов сохранялись в текстовый файл. Осталось только обработать эти результаты.
lipskiy (2002-03-19 12:59:00) [7]
> Тебе ж говорят, задача не такая тривиальная как кажется
> :). Тебе голова на что дана?
В ней рот, которым я ем :)
> А описание алгоритма ты навряд ли найдёшь
Да просто спросил, ведь если есть готовые решения, то чего изобретать гайку от велосипеда. Придумаем, конечно!
Andrey007 (2002-03-19 09:34:00) [8]2KvORubin
>Как работать с ДЛЛ ками, я с ними не сталкивался, если у кого есть желание, объясните ПЛИЗ !!!
Ну, посмотрите help, книжки какие-нибудь. Может чего и на этом сайте есть.
Suntechnic (2002-03-19 02:16:00) [9]>lipskiy © (19.03.02 02:03)
>вернее две, одна мне сравнит два ехешника и выдаст никий блочек разницы (блочки разниц) и некие адреса этих блочков, а другая утилитка, что у юзера...
Это зависит от реализации. Можно всё в одну впихнуть, а можно и в две разнести. В одну удобнее, т.к. тёте Маше из Мухосранска не надо будет объяснять, что надо запустить вот это и нажать туда-то...
>Ведь нужно не просто побайтно сравнивать, а искать вставленные и вырезанные блоки.
Тебе ж говорят, задача не такая тривиальная как кажется :). Тебе голова на что дана? А описание алгоритма ты навряд ли найдёшь. Это всё равно, что пытаться найти алгоритм замены подстроки.
lipskiy (2002-03-19 02:03:00) [10]Тут самый сложный момент - корректно найти различия. Нет ли где описаний каких-нибудь по этой теме? Ведь нужно не просто побайтно сравнивать, а искать вставленные и вырезанные блоки. Как это делается? (чисто алгоритмически).
lipskiy (2002-03-19 01:59:00) [11]2 Suntechnic
Черт, до меня недоперло сразу - то есть отслеживать компилированный код тут совсем не нужно (как я вначале почему-то подумал), а просто написать маленькую утилитку, вернее две, одна мне сравнит два ехешника и выдаст никий блочек разницы (блочки разниц) и некие адреса этих блочков, а другая утилитка, что у юзера, возьмет эти блочки и перепишет в ехешнике. Мудро! Действительно интересная задачка, обязательно попробую такую фишку сделать.
Suntechnic (2002-03-19 01:49:00) [12]>lipskiy © (19.03.02 01:04)
>А нельзя ли поподробнее?
Ды что подробнее то? Возьми, например, старую версию своей программы, и новую. И посмотри разницу с помощью любой утилиты(например той что идёт вместе с WinCom). В зависимости от того, что менялось разница будет измерятся в байтах. Вот тебе и надо написать утилиту, которая просто напросто уберёт из старой версии ненужные байта, и добавит необходимые. Конечно задача не настолько тривиальная, как я описал, но вполне выполнимая. Естественно сама утилита должна быть на API, чтобы не жрать драгоценные байты при пересылке.
lipskiy (2002-03-19 01:04:00) [13]2 Suntechnic
!!! Очень интересная мысль! Я об этом раньше никогда не слышал (в смысле - о правке самого ехешника, слышал только о подмене модулей (dllек)).
А нельзя ли поподробнее?
Suntechnic (2002-03-19 00:31:00) [14]Как я понял основными проблемами "больших" программ является необходимость обновления. А почему никто патчами не пользуется? Под патчами я понимаю программку, которая будет править старый exe и переделывать его в новый. Зачем тянуть 10 метров по сети, если в программе ничего не поменялось, за исключением 10 байт? Насколько я знаю существуют специальные приложения по созданию патчей(этим у нас билд инженер занимается, так что названий я не знаю, знаю только что имеются) или можно самому написать. Задача не очень сложная, зато интересная. И не надо будет тётенькам из Забулдыгино объяснять что такое ZIP.
А использовать всякие упаковшики я бы не рекомендовал. Тут это тема уже неоднократно подымалась, так что желающие смогут найти почему.
KvORubin (2002-03-18 21:10:00) [15]> Andrey007
Как работать с ДЛЛ ками, я с ними не сталкивался, если у кого есть желание, объясните ПЛИЗ !!!
Andrey007 (2002-03-18 17:12:00) [16]А ещё можно разбить свою программу на несколько маленьких dll. И посылать пользователям только то, что нужно обновить. Или программу, которая делает тоже самое если пользователи неграмотные.
KvORubin (2002-03-18 17:07:00) [17]Нет, это слишком много времени и нервов.
Андрей Сенченко (2002-03-18 15:48:00) [18]Нет... Ну если не лениво или размер настолько критичен, что это необходимо - просто пройди по объявленным в программе модулям ( Windows, SysUtils и т.п. ) и скопируй оттуда все необходимые Тебе функции и процедуры в свой проект.
Предупреждаю сразу, что работа сия подобна цепной реакции ( одни функции потнут за собой другие ) и очень кропотливая, но если надо ...
KvORubin (2002-03-18 15:07:00) [19]> Косильщик_Лужаёв ©
Спасибо, но мне нужно то, о чём > lipskiy © говорит..
Но вижу этому не суждено быть, раз 300 значит 300 ;((
lipskiy (2002-03-18 00:53:00) [20]> есть ли какой-то способ: создать форму вручную, етс она
> будет весить очень мало и при этом лепить интерфейс так
> как на обычной 300 килобайтной форме ???
IMHO, если на API, то так и будет. А если просто динамически крейтить формы используя класс TForm, то чтобы его использовать уже придется подкомпилировать все его ресурсы (Forms, Controls,...) и получатся те же 300кб.