Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 507

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте!подскажите пожалуйста как зделать чтобы моя программа сделаная в дельфи сама компелировала ехе файлы.
например "конструктор програм для авторунов сд-двд дисков"

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

cock Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: cock (статус: Посетитель)
Вопрос отправлен: 9 декабря 2009, 13:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, cock!
Никто не делает обычно такие программы самокомпилируемыми. Есть два подхода.
- использовать скриптовый язык. Например в JVCL библиотеке есть пара компонентов, которые позволяют писать дефлиподбоный код, и даже использовать формы.
- используется файл с данными, которые интерпретируются потом.

Но у обоих этих методов есть как бы "недостаток" - кроме исполнимого файла есть ещё один-два.
Но на самом деле это не проблема. Например, можно использовать winrar, который может сделать самораспаковывающийся архив и запустить вашу программу. и рядом распакует все дополнительные файлы.
Второй вариант - файл с конфигурацией приклеивается в конец исполнимого файла или прямо помещается в ресурсы. Для этого компилятор не надо. а извлечь назад просто. Склеить два файла можно как програмно, так и с консоли, где то так

copy project.exe+data.bin newproject.exe

В процессе работы приложение может открыть свой же исполнимый файл на чтение и вычитать с конца файла данные. Самая сложная задача - это решить сколько надо вычитывать. я бы сделал так. в начало файла data.bin поместил бы последовательность байт, которая будет всегда одинаковой (как бы контрольная, что это начало) - сигнатура называется.
А в самый конец файла записал бы размер данных.
При чтении мы просто читаем последние 4 байта и узнаем размер данных. потом проверяемся. И ко всему, данные потом не нужно сохранять на диск отдельно. можно читать даже функциями reset/read

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 9 декабря 2009, 14:43


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 9 декабря 2009, 14:36; участников в обсуждении: 2.
min@y™

min@y™ (статус: Доктор наук), 9 декабря 2009, 14:19 [#1]:

Цитата (cock):

чтобы моя программа сделаная в дельфи сама компелировала ехе файлы


Ну, если в такой формулировке, то можно прикрутить к программе внешний компилятор от Delphi dcc32.exe.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
cock

cock (статус: Посетитель), 9 декабря 2009, 14:24 [#2]:

а по подробней можно как это делаеться и где это взять.
cock

cock (статус: Посетитель), 9 декабря 2009, 14:25 [#3]:

если можно то покажите пример
min@y™

min@y™ (статус: Доктор наук), 9 декабря 2009, 14:36 [#4]:

Цитата (cock):

где это взять

Внешний компилятор находится в папке с Delphi. У меня, например, тут: d:\Soft\Delphi7\Bin\DCC32.EXE

Цитата (cock):

если можно то покажите пример

Пример не можно, ибо никогда такими делами я не занимался, но почитать хэлп от этого компилятора советую.

Ты давай лучше расскажи, какую вешь тебе сотворить нужно, а то опять попахивает сагой про X-Y-Z.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:01
Выполнено за 0.02 сек.