![]() |
|
#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
|
|||
|
|||
![]() а вообще, нужно несколько файлов объединить в один, с возможностью потом извлечь их
|