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

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

Работа с файлами [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


Наверх

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