![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с потоками [Delphi, Windows]
Deimos © (2003-11-14 12:19:00)Пишу инсталятор для своей утилиты, в процессе надо скопировать файлы во временную папку
написал такую процедуру:
var
new,old:PStream;
procedure copyToWinSystem(Dummy: Pointer; Sender:PControl);
begin
if CheckDirectoryContent(GetTempDir+'wcdupd.exe',false,'wcdupd.exe')=true then
begin
old:=NewReadFileStream (getStartDir+'wcdupd.exe');
new:=NewWriteFileStream(GetTempDir+'wcdupd.exe');
new.Write(old,old.Size);
new.Free;
old.Free;
end;
end;
в результате в конечной папке (в моём случае c:\winnt\temp) находится exe-шник с тем-же именем и того-же размера что и исходный,
но набитый совершенно левым мусором... Что я делаю неправильно?
mdw (2003-11-14 13:22:00) [1]Можно исползовать Stream2Stream(new, old, old.Size);
SPeller (2003-11-14 13:09:00) [2]Нужно сначала прочитать в буфер твой файл, а уж потом из этого буфера писать. В параметр функции Write потока надо передавать указатель на блок памяти, а не указатель на объект другого потока!