Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Совместить графику и текст в одном файле?   Найти похожие ветки 

 
kutsanov   (2003-11-30 11:32) [0]

Можно ли создать файл в котором могли бы сосуществовать разнотипные данные.... например, чтобы при открытии одного файла программа вначале считывала бы рисунок *.bmp, затем считывал большой текстовый блок (около 300 кБ), затем считывала другие данные (можно хотя бы лишь первые два ....
к примеру на моей странице (www.nskport.narod.ru) в разделе "доска объявлений" есть прога, которая подгружает в себя текстовый файл, Картинку, Презентацию .... но все это берется из разных файлов. Можно ли сделать чтобы вся инфа хранилась в одно файле?


 
MBo   (2003-11-30 11:40) [1]

вот пример.
В твоем случае хорошо бы еще перед данными писать их тип (0-text, 1- bmp и т.д.), а в начале - общее количество блоков данных.


Сохранение несколько объектов, обладающих методом SaveToStream, в один поток

uses ... jpeg;

procedure TForm1.SaveClick(Sender: TObject);
var
j1,j2:TJpegImage;
fs: TFileStream;
ms: TMemoryStream;
size: Integer;
begin
j1:= TJpegImage.Create;
j2:= TJpegImage.Create;
j1.LoadFromFile("e:\5.jpg");
j2.LoadFromFile("e:\4.jpg");
ms:= TMemoryStream.Create;
fs:= TFileStream.Create("e:\jpgs.dat",fmCreate);

j1.SaveToStream(ms);
ms.Position := 0;
size := ms.Size;
fs.WriteBuffer( size, Sizeof(size));
fs.CopyFrom(ms, size );
ms.Clear;

j2.SaveToStream(ms);
ms.position := 0;
size := ms.Size;
fs.WriteBuffer( size, Sizeof(size));
fs.CopyFrom(ms, size );

ms.Free;
fs.Free;
j1.Free;
j2.Free;
end;

procedure TForm1.LoadClick(Sender: TObject);
var
j1,j2:TJpegImage;
fs: TFileStream;
ms: TMemoryStream;
size: Integer;
begin
j1:= TJpegImage.Create;
j2:= TJpegImage.Create;
ms:= TMemoryStream.Create;
fs:= TFileStream.Create("e:\jpgs.dat",fmOpenRead);

fs.ReadBuffer( size, sizeof(integer));
ms.CopyFrom(fs, size );
ms.Position := 0;
j1.LoadFromStream(ms);
Image1.Picture.Assign(j1);

ms.Clear;
fs.ReadBuffer( size, sizeof(integer));
ms.CopyFrom(fs, size );
ms.Position := 0;
j2.LoadFromStream(ms);
Image2.Picture.Assign(j2);

ms.Free;
fs.Free;
j1.Free;
j2.Free;
end;


 
miek   (2003-11-30 12:15) [2]

Используй формат RTF.
Или формат Ворда (но придется работать через сам Ворд)


 
Amoeba   (2003-12-01 12:42) [3]

Такая задача легко решается если использовать т.н. структурированные хранилища (через интерфейс IStorage). Это наиболее универсальный способ. Можно почитать на
http://www.comizdat.com/3/4/90/3571/3574/


 
Dmitriy O.   (2003-12-01 13:14) [4]

Все просто надо хранить графику как текст в текстовом файле.
Правда если это JPG файлы и большие то текста потребуется немерянно. А для стандартных BMP легко.


 
kutsanov   (2003-12-02 16:37) [5]

Огромное всем спасибо за отклик на мою проблему
...
Отдельное спасибо "мастеру MBo" .
пока еще не проверил код, но думаю должно получится, и ... я многое узнал!
Спасибо!
....
только вот не понятно, там было лишь две картинки, а не картинка и файл.
все равно спасибо!
Будем трудится дальше



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

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.006 c
3-36521
Woman
2003-11-21 10:33
2003.12.12
Exception при обращении к TADOQuery.


1-36610
Valday
2003-11-30 21:54
2003.12.12
Сохранение приложения


1-36622
oens
2003-12-01 13:08
2003.12.12
button


1-36705
Artog
2003-12-02 15:17
2003.12.12
динамический массив


14-36804
ИдиотЪ
2003-11-20 11:46
2003.12.12
а вот представьте ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский