Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.013 c
1-36738
Koba
2003-12-01 11:04
2003.12.12
Перемещение формы по экрану.


14-36820
Igor_thief
2003-11-19 18:21
2003.12.12
Монитор


1-36764
Алексей Глеб
2003-12-01 19:13
2003.12.12
Текущий видеорежим


1-36599
RedArc
2003-11-27 22:46
2003.12.12
Хитрые окна


3-36547
Strateg23
2003-11-20 17:54
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский