Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];

Вниз

Помогите начинающему   Найти похожие ветки 

 
DNT   (2002-11-30 14:14) [0]

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

Как это сделать не используя ресурсы?
Файл можно перевести в формат:

DB 13,23,43,45;
и т.д.

Спасибо.


 
TTCustomDelphiMaster   (2002-11-30 14:31) [1]

prog: array [0..4] of byte = ($DB, $13, $23, $43, $45);


 
DNT   (2002-11-30 14:38) [2]

А если прога 9k размером?


 
TTCustomDelphiMaster   (2002-11-30 14:45) [3]

prog: array [0..9215] of byte = ($DB, $13, $23, $43, $45, ...);


 
ctapik-net   (2002-11-30 20:03) [4]

Нет не то, тебе этот файл надо поместить в ресурсы проги, и при необходимости считывать из них


Вот

Шаг первый:

Создайте файл сценария ресурса (*.RC) в обычном текстовом редакторе типа Notepad и добавьте следующую строку:



--------------------------------------------------------------------------------

1 RCDATA "MyPic.jpg"

--------------------------------------------------------------------------------

Первый элемент является просто индексом ресурса. Второй элемент указывает на определенный пользователем ресурс. Третий, он же последний элемент, является именем jpeg-файла.

Шаг второй:

Для компиляции ресурса в .RES-файл используйте Borland Resource Compiler, BRCC32.EXE. В командной строке MS-DOS введите:



--------------------------------------------------------------------------------

BRCC32 MyPic.RC

--------------------------------------------------------------------------------

Это создаст файл ресурса с именем MyPic.RES.

Шаг третий:

Добавьте директиву компилятора к исходному коду вашей программы. Она должна располагаться непосредственно за директивой формы, как показано ниже:



--------------------------------------------------------------------------------
{$R *.DFM}
{$R MyPic.RES}

Шаг четвертый:

Добавьте следующий код к вашему проекту (для этого я создал процедуру):



--------------------------------------------------------------------------------
procedure LoadJPEGfromEXE;

var

MyJPG : TJPEGImage; // Объект - JPEG
ResStream : TResourceStream; // Объект - поток ресурсов

begin

try
MyJPG := TJPEGImage.Create;
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // Что!? Да, это просто!
Canvas.Draw(12,12,MyJPG); // сделайте это, чтобы увидеть что это действительно работает!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure


Обратили внимание на второй параметр процедуры CreateFromID объекта TResourceStream? Это просто индекс ресурса. Вы можете включить более одного jpeg-изображения в исполняемый модуль приложения, просто добавляя в .RC-файл строчку с другим индексом для каждого включаемого изображения.

Шаг пятый:

Вызовите процедуру, запустите программу и вуаля! Дело сделано.


 
DNT   (2002-11-30 20:41) [5]

Да, но мне нужно это сделать не для jpg, а для любого файла и просто его сохранить на диске.
Желательно и ресурсы не использовать.
Все же спасибо!


 
TTCustomDelphiMaster   (2002-11-30 21:44) [6]

DNT
Вместо jpg можно использовать любой файл. Записать на диск его можно с помощью TFileStream.

PS: А почему вы так упорно не хотите использовать ресурсы?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
1-36285
Le!
2002-12-01 09:00
2002.12.12
Помогите!


1-36231
Sour
2002-12-01 21:19
2002.12.12
EInvalidOp


14-36352
andrek
2002-11-20 11:53
2002.12.12
Желаю узнать ваше мнение


1-36212
AlexT1000
2002-11-29 14:08
2002.12.12
Как юзая FrameRgn отрисовывать выделение как в PhotoShop?


1-36090
IronHawk
2002-12-01 02:52
2002.12.12
Запуск ЕХЕ-шника с параметром?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский