Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приложение, создающее приложение [D6, D7, XP]


Страницы:   1 2

Артем ©   (2007-12-27 23:33:00) 

Мастера!
Опишите, пожалуйста, хотя бы вкратце схему реализации следующей задачи. Создать программу, которая бы создавала другую программу с учетом данных, введенных пользователем.
Например, в этом приложении пользователем вводится какой-нибудь текст, далее "создать" и на выходе новый exe-файл с одним элементом memo, в котором вставлен данный текст.
Опишите вкратце как это организовать, пожалуйста.
Заранее огромное спасибо за советы.


Артем   (2007-12-28 23:56:00) [21]


> Зачем?

удобно для пользователя


Артем   (2007-12-28 23:55:00) [22]

Как мне сохранить данные пользователя(html, графику,видео,аудио и т.д.) в копии своего приложения и потом их считать?


palva   (2007-12-28 23:47:00) [23]

> Есть мысли у кого?
Мыслей-то много. Только вопрос задайте. На то что вы спрашивали вам уже ответили во многих вариантах.


sdts   (2007-12-28 23:34:00) [24]


> И чтобы все это обязательно хранилось в одном EXE-файле.

Зачем?


Артем   (2007-12-28 23:21:00) [25]

Нет, все-таки это не совсем то, что мне нужно. У меня данные разные надо хранить - и видео, и аудио, и html чтоб компилировался (это я сам), и JPEG и т.д. И чтобы все это дело устанавливалось пользователем, после чего зашивалось в приложение. Поэтому мне надо будет скопировать самого себя в указанное пользователем место и зацепить в ту копию все заданные им данные (далеко не только текст). Т.е. чтобы в копии отражались уже данные пользователя. Например, по нажатию на определенную кнопку (ранее созданную) воспроизводилось видео пользователя. Или, например, в WebBrowser-е при запуске скопированной программы отображался текст пользователя, который он ранее ввел. И чтобы все это обязательно хранилось в одном EXE-файле.

Я более менее ясно изъяснился?

Есть мысли у кого?


palva   (2007-12-28 23:03:00) [26]

> А можно ли в таком случае скопировать самого себя и дописать в копию необходимые данные?
Вопрос не очень понятен. Во всяком случае программа всегда может прочитать себя и скопировать в другой файл.

> Как это реализовывается?
Если просто копирование себя, то например, так.
{$APPTYPE CONSOLE}
var
 fi, fo: File;
 buf: array[1..4000] of char;
 n: Integer;
begin
 AssignFile(fi, 'myprog.exe');
 AssignFile(fo, 'myprog1.exe');
 Rewrite(fo, 1);
 FileMode := 0;
 Reset(fi, 1);
 repeat
   BlockRead(fi, buf, 4000, n);
   BlockWrite(fo, buf, n);
 until n<>4000;
 CloseFile(fi);
 CloseFile(fo);
end.

Если нужно читать то, что дописано, тогда встаньте на нужное место после открытия входного файла и читайте.


Артем   (2007-12-28 22:46:00) [27]


> Конечно есть. Держать ваши данные в отдельном файле и читать
> его из программы. Это самое простое решение. А можно дописать
> файл с данными к программе и пусть программа читает сама
> себя. Сменились данные? Тогда берем первоначальный exe-файл
> и дописываем к нему другие данные. Компилятор для этого
> не нужен.


Слушайте, ну это кстати вариант. Спасибо. А можно ли в таком случае скопировать самого себя и дописать в копию необходимые данные? Как это реализовывается?


palva   (2007-12-28 22:31:00) [28]

> Читал, только этого очень мало, а скорее слишком сложно.
Задавайте конкретные вопросы дополним и объясним, что непонятно.
> Ну есть же более простое решение?
Конечно есть. Держать ваши данные в отдельном файле и читать его из программы. Это самое простое решение. А можно дописать файл с данными к программе и пусть программа читает сама себя. Сменились данные? Тогда берем первоначальный exe-файл и дописываем к нему другие данные. Компилятор для этого не нужен.


Артем   (2007-12-28 21:54:00) [29]

Читал, только этого очень мало, а скорее слишком сложно. Ну есть же более простое решение?
Да и файл проекта не лежит уже на сервере, не посмотришь примеры...


Amoeba   (2007-12-28 21:48:00) [30]


> Артем   (28.12.07 19:26) [10]
>
> Нет, мне нужно именно новое приложение.
>
> dcc32 - его можно зашивать в основную программу и потом
> с помощью него компилировать новые приложения? а где скачать
> можно и существует ли какой-либо мануал краткий хотя бы?
>

1. Ну "зашьешь", и что дальше? Все равно ведь запускать придется с диска. Да и несколько *.dcu все равно придется тащить с собой.
2. Загляни в папку \Delphi\Bin и обрящешь. Потом выполни dcc32.exe > dcc32.txt и чудесным образом у тебя появится "мануал".

И еще рекомендую прочесть эту статью:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=454


Артем   (2007-12-28 19:26:00) [31]

Нет, мне нужно именно новое приложение.

dcc32 - его можно зашивать в основную программу и потом с помощью него компилировать новые приложения? а где скачать можно и существует ли какой-либо мануал краткий хотя бы?


Alkid   (2007-12-28 18:07:00) [32]

Без дельфи можно, если только установишь dcc32 на комп :) Это компилятор от дельфи, без IDE.

Вообще я бы поступил иначе - я бы сделал так, что бы программа читала эту страницу у себя с конца и потом просто делал копию готового exe-шника и дописывал ему данные в конец. Нормальная пересборка программы тут - явная пальба из пушки по воробьям.


Артем   (2007-12-28 17:39:00) [33]

Может есть готовые?
На сколько сложен этот процесс и где об этом можно почитать?


Рамиль   (2007-12-28 17:02:00) [34]


> можно ли БЕЗ Delphi компилировать приложение?

Да запросто.

> Если да, то как?

Написать и откомпилировать компилятор.


Артем   (2007-12-28 16:11:00) [35]

Приложения "на выходе" все будут однотипными, меняется только содержимое. В моем случае меняется содержимое html-страницы. Мне одно не понятно - можно ли БЕЗ Delphi компилировать приложение? Если да, то как?
Знаю, что можно компилировать RC-файлы с помощью brcc32, это понятно. Но как скомпилированный файл ресурса всунуть в приложение без Delphi. Это я не знаю. Подскажите плиз.


Alkid   (2007-12-28 11:59:00) [36]

1. LISP и прочие языки с нормальным метапрограммированием - 4ever
2. Схема генератор исходников -> компилятоор -> результат
3. Скриптование вместо порождения новой программы.

Короче, автор, изложи предметную проблему. Сдаётся там тебе нужно не совсем это.


www   (2007-12-28 10:21:00) [37]


> лежащему рядом компилятору.

с другого языка :))


Skyle   (2007-12-28 06:46:00) [38]

Пишешь программу, которая генерирует исходник на каком-нибудь языке. А потом по кнопке "Родить" этот исходник подсовывается лежащему рядом компилятору.


Германн   (2007-12-28 01:27:00) [39]


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

Это не задача. Это бредовое переложение на русский какой-то другой задачи. А сей бред решается без создания "другой программы" двумя функциями: SaveToFile & LoadFromFile.


{RASkov}   (2007-12-28 01:03:00) [40]

> Опишите вкратце как это организовать,

вкратце:
-это сложно....
Как вариант, если приложения будут однотипные, можно сделать шаблонное приложение и затем его копировать и копии подсовывать новые ресурсы....
Например с мемо. Создать новый проект (форма и на ней Мемо) и на создании формы грузить в мемо, из заранее определенного ресурса, текст...
И вот этот ресурс можно будет подсовывать новой копии... Объяснить получилось как-то криво... сорри... зато вкратце)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо