![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с файлами [D5, D6, D7, Win95/98, WinXP]
BlackDel © (2006-03-16 10:58:00)Доброго времени суток!
Помогите, пжалста!
В Делфях есть хороший клас- TFileStream
Мне говорили, что если в него передать Handle какого-нибудь
Участка памяти, то с ним можно работать как с файлом.
Если нельзя, посаветуйте, как сохранять участок памяти(любой) на диск.
MBo (2006-03-29 08:37:00) [1]Ты уж объясни, что тебе нужно сделать
BlackDel (2006-03-29 07:43:00) [2]Поторопился благодорить! Нифига не работает!!! опять 1 пустой байт!!!
balepa (2006-03-27 08:14:00) [3]Удалено модератором
BlackDel (2006-03-27 08:12:00) [4]Спасиба. Любопытство удовлетворено! :)
BlackDel (2006-03-27 08:12:00) [5]Удалено модератором
Старик (2006-03-25 09:48:00) [6]
> Anatoly Podgoretsky © (25.03.06 09:35) [7]
>
> TMemoryStream?
Я имел ввиду TFileStream'ы :)
Anatoly Podgoretsky (2006-03-25 09:35:00) [7]TMemoryStream?
Старик (2006-03-25 08:40:00) [8]кхм... я делаю просто:
где-то там, в программе, у тебя объявлены такие переменные:
b1, b2, b3 : TBitmap;
j1 : TJPEGImage;
Там ты что-то с ними поделал, а потом захотелось тебе их сохранить:
procedure SaveMyPictures(FileName : TFileName)
var s : TFileStream;
begin
s := TFileStream.Create(FileName, fmCreate or fmShareDenyWrite);
b1.SaveToStream(s);
b2.SaveToStream(s);
b3.SaveToStream(s);
j1.SaveToStream(s);
s.Free;
Таким макаром ты четыре разных рисунка спихиваешь в один файл. Хотя тебе тут правильно сказали - все эти стримы всего лишь обертки над стандартным функциями WriteFile, ReadFile и иже с ними.
BlackDel (2006-03-25 07:41:00) [9]
> Показывай, как пишешь.
Где то так:
...
var h:Thandle;
f,r:Tfilestream;
i:integer;
c:char;
...
h:=image1.picture.bitmap.handle;
r:=Tfilestream.create(h);
f:=Tfilestream.create('Имя файла',fmCreate);
i:=r.read(c,1);
repeat
f.write(c,1);
until r.read(c,1)=0;
...
r.free;
f.free;
...
В итоге 1 пустой байт на диске.(За синтаксис не отвечаю, не из исходника вставлял а так набирал).
Ega23 (2006-03-17 09:56:00) [10]
> Попробовал всё. Не помагает. Мне надо Неск-ко рисунков Записать
> в 1 файл
> Записывает только 1 пустой байт
Показывай, как пишешь.
BlackDel (2006-03-17 09:38:00) [11]Попробовал всё. Не помагает. Мне надо Неск-ко рисунков Записать в 1 файл
Записывает только 1 пустой байт
TStas (2006-03-16 11:33:00) [12]Вообще-то класс TStream он и для файлов и для памяти и нет разницы и копировать и т. д. Глянь справку или книжку, я смотрел Фаронова.
Fay (2006-03-16 11:02:00) [13]2 BlackDel (16.03.06 10:58)
> посаветуйте, как сохранять участок памяти(любой) на диск.
WriteFile