![]() |
|
|
|
|
#1
|
|||
|
|||
|
Пытаюсь записать jpg файл в ini:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
MS:TMemoryStream;
I:TIniFile;
begin
if OpenPictureDialog1.Execute then
begin
I:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'A.ini');
MS:=TMemoryStream.Create;
Ms.LoadFromFile(Form1.OpenPictureDialog1.FileName);
I.WriteBinaryStream('Main','a',MS);
I.Free;
MS.Free
end;
end;Я проверял, все сохраняется. Потом я хочу извлечь из ini: Код:
procedure TForm1.Button2Click(Sender: TObject);
var
MS:TMemoryStream;
I:TIniFile;
begin
I:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'A.ini');
MS:=TMemoryStream.Create;
I.ReadBinaryStream('Main','a',MS);
MS.SaveToFile(ExtractFilePath(Application.ExeName)+'A.jpg');
I.Free;
MS.Free
end;Но файл извлекается не полностью: весь серый, а только в левом верхнем углу что-то намекающее не картинку. Кто-нибудь пытался сделать что-то вроде этого? Последний раз редактировалось ChinYan, 19.10.2010 в 11:42. |
|
#2
|
||||
|
||||
|
Справка выдала:
When used with a Windows .ini file, ReadBinaryStream is limited to 1023 characters |
|
#3
|
|||
|
|||
|
Мда, понятно... а никто не знает, как расширить сей лимит?
|
|
#4
|
||||
|
||||
|
Расширить не как, только писать свой тип файла (или же тупое сохранение потока памяти в файл)...
|
|
#5
|
|||
|
|||
|
пришла тут дурацкая идея разбить файл на кусочки по 1023 байта
|
|
#6
|
|||
|
|||
|
а вообще, нужно несколько файлов объединить в один, с возможностью потом извлечь их
|