Вниз
Скачать: CL | DM;

Сохранение в файл   Найти похожие ветки 

← →
Aleron   (2006-09-26 17:55) [0]

Имеется images:array[0..20,0..20] of Timage;
Как лучше организовать сохранение/загрузку данных из <<images>> в файл?


← →
clickmaker ©   (2006-09-26 18:24) [1]

SaveToStream в один стрим, а потом сохранить в файл


← →
dr Gonzo ©   (2006-09-26 18:24) [2]

Например сохранение в поток : images[x].Picture.Bitmap.SaveToStream(...);
Потом поток в файл на диске.


← →
flaxe ©   (2006-09-26 18:26) [3]

Хм.. а как мне его тогда загружать оттуда???


← →
@!!ex ©   (2006-09-26 18:29) [4]

LoadFromStream если по логике... Нет? :D


← →
dr Gonzo ©   (2006-09-26 18:32) [5]

fs: TFileStream;
...
fs:=TFileStream.Create("xxx.xxx", fmOpenRead);
fs.Seek(0, soFromBeginning);

и начинаем читать в том порядке в котором записали...

images[x].Picture.Bitmap.loadFromStream(fs);


← →
Aleron   (2006-09-26 18:44) [6]

Вот нашел вариант:
но почемуто у меня не работает...
Сохранение:
procedure TForm1.Button2Click(Sender: TObject);
var
MemoryStream: TMemoryStream;
 FileStream: TFileStream;
 Writer: TWriter;
 Buffer: Pointer;
 Size: Longint;
 Column: Integer;
 Row: Integer;
begin
MemoryStream := TMemoryStream.Create;
 FileStream := TFileStream.Create("c:\save.map", fmCreate);
 Writer := TWriter.Create(FileStream, $1000);
 try
   for Column := 0 to 20 do
     for Row := 0 to 20 do
     begin
       MemoryStream.Clear;
       images[column,row].Picture.Bitmap.SaveToStream(MemoryStream);
       Buffer := MemoryStream.Memory;
       Size := MemoryStream.Size;
       Writer.WriteInteger(Size);
       Writer.Write(Buffer^, Size);
     end;
 finally
   Writer.Free;
   FileStream.Free;
   MemoryStream.Free;
 end;
end;


При чтении пишет что не тот тип:

MemoryStream := TMemoryStream.Create;
 FileStream := TFileStream.Create("c:\save.map", fmOpenRead);
 Reader := TReader.Create(FileStream, $1000);
 try
   for Column := 0 to 20 do
     for Row := 0 to 20 do
     begin
       Size := Reader.ReadInteger;
       MemoryStream.SetSize(Size);
       Buffer := MemoryStream.Memory;
       Reader.Read(Buffer^, Size);
       images[Column,Row].Picture.Bitmap.LoadFromStream(MemoryStream);
     end;
 finally
   Reader.Free;
   FileStream.Free;
   MemoryStream.Free;
 end;
 DrawGrid1.Repaint;


dr Gonzo, щас твой вариант попробую..


← →
Плохиш ©   (2006-09-27 01:38) [7]


> Aleron   (26.09.06 18:44) [6]

Достаточно писать в файл последовательно: размер, данные, размер, данные...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
10-1124468571
APXi
2005-08-19 20:22
2006.10.15
Способ вставки в Excel


1-1157523050
DmiSb
2006-09-06 10:10
2006.10.15
Как программно открыть календарь у TDateTimePicker ?


15-1158902293
buka
2006-09-22 09:18
2006.10.15
Может конечно и баян, но ссылка имхо полезная


15-1158676446
oldman
2006-09-19 18:34
2006.10.15
Плюнул на фильм, купил книгу.


2-1159682879
одиндватри
2006-10-01 10:07
2006.10.15
операторные скобки




   Наверх