Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоковое копирование из ресурсов, непонятности есть! 
:(
    Опции темы
h2o
Дата 8.11.2005, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



Вот такой код есть:
Код

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, StdCtrls, ComCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }  end;
var
  Form1: TForm1;
implementation

{$R *.dfm}
{$R ifiles.RES}//Указываем дополнительный файл ресурсов, помещаемых в .exe файл.

procedure TForm1.Button1Click(Sender: TObject);
procedure ForceDir(const path:string); //создание папки
begin
 if (trim(path)='')or(path[Length(path)]=':') then exit;
 if path[Length(path)]<>'\' then ForceDir(extractFilePath(path)) else ForceDir(extractFilePath(copy(path,1,Length(Path)-1)));
 CreateDirectory(PChar(path),nil);
end;
var
  ProgramPath: String;
  re:TResourceStream; //Декларируем переменную потокового типа.
begin
  ProgramPath:='c:\myProgram';
  ForceDir(ProgramPath);
  re:=TResourceStream.Create(0,'rc_file1',RT_RCDATA); //Иницилируем переменную, указывая дескриптор в ресурсах, внедренных в .exe файл.
  re.SaveToFile(ProgramPath + '\myFile.txt);//сохраняем поток в файл во временную папку.
  re.Free; //Уничтожаем переменную
end;
end.

как вы правильно заметили - это копирование файла myFile.txt у которого имя в ресурсе 'rc_file1' из мною созданого ifiles.RES. С этим и мне вё понятно!
А вот что если у меня в ресурсе 500 файлов??? чне что каждый раз и писть:
Код

  re:=TResourceStream.Create(0,'rc_file1',RT_RCDATA); 
  re.SaveToFile(ProgramPath + '\myFile1.txt);
  re.Free;
  re:=TResourceStream.Create(0,'rc_file2',RT_RCDATA); 
  re.SaveToFile(ProgramPath + '\myFile2.txt);
  re.Free;
  re:=TResourceStream.Create(0,'rc_file3',RT_RCDATA); 
  re.SaveToFile(ProgramPath + '\myFile3.txt);
  re.Free;
//и т.д.

Вопросы:
1. Должен же быть другой способ?

2. и ещё... вот копируются (сохраняются) у меня эти файлы в папку 'c:\myProgram' и ведь есть какойто статус этого действия, типа выполнено %. И это можно засунуть в Gauge или ProgressBar? как это сделать?

3. А как мне ужать файлы в ifiles.RES. Например с помощью Zlib. Чтобы они были в моём ехе в ужатом виде. Кто подскажет?

4. А может компонент есть? кидаешь его на форму, указываешь из какой папки файло в ресурсы загонять, указываешь в какую папку их потом при вызове скопировать... и ещё этот компонент процесс отдаёт???

Это сообщение отредактировал(а) h2o - 8.11.2005, 12:19
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
Snowy
Дата 8.11.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Создай процедуру, которой нужно передать имя ресурса и имя файла.

PM MAIL   Вверх
h2o
Дата 8.11.2005, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



а вопросов было 4!
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
z-END
Дата 8.11.2005, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Цитата(h2o @ 8.11.2005, 13:43)
а вопросов было 4!

а ты правила форума читал?



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Snowy
Дата 8.11.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(h2o @ 8.11.2005, 12:09)
и ещё... вот копируются (сохраняются) у меня эти файлы в папку 'c:\myProgram' и ведь есть какойто статус этого действия, типа выполнено %. И это можно засунуть в Gauge или ProgressBar? как это сделать?

Процесс есть у стримов. Его и использовать.
Либо прогресс считать по количеству файлов.
Тогда сам - знаешь количество, знаешь порядковый номер ресурса.
Остальное дело техники.

Цитата(h2o @ 8.11.2005, 12:09)
А как мне ужать файлы в ifiles.RES. Например с помощью Zlib. Чтобы они были в моём ехе в ужатом виде. Кто подскажет?

Возьми пример ZLib, сожми все файлы. При сохранении декомпресь.
Либо более простой способ - сожми exeшник UPX'ом.
PM MAIL   Вверх
h2o
Дата 8.11.2005, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



читал конечно!
дак мне что 4 темы создавать по 1 и тому же коду? ага, за спам заругают!!!

Добавлено @ 13:57
за флуд точнее...
Добавлено @ 14:00
а вопрос №4 - компоненты есть??
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
_hunter
Дата 8.11.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



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


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
h2o
Дата 8.11.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 19.8.2005

Репутация: 1
Всего: 1



а если нет такого компонента, может кто может помоч его написать? думаю он многим пригодится... я дак нифига незнаю как их писать!

Snowy
Цитата
Процесс есть у стримов. Его и использовать.

а как? в моём примере можешь показать?
--------------------
Я нифига не знаю! мало что понимаю! Помогите тупому... У меня стоит D7!
PM MAIL   Вверх
z-END
Дата 8.11.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



если память неподводит VCLzip/VCLUnZip поддерживает работу с потоком


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Alex
Дата 8.11.2005, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Snowy
Дата 8.11.2005, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(z @ 8.11.2005, 14:52)
если память неподводит VCLzip/VCLUnZip поддерживает работу с потоком

Память не подводит. Именно так.
Но у ZIP компрессия слабее, чем у ZLib.
Вариант с UPX проше и эфективней.
Добавлено @ 22:30
Да, и ZLib добавляет меньше к ехешнику, чем VCLZip.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.