Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
ВнизСохранение в файл Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c