Главная страница
    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.46 MB
Время: 0.009 c
14-36834
RealRascal
2003-11-16 11:38
2003.12.12
---<<< Скорость кода >>>---


14-36808
Style
2003-11-20 11:43
2003.12.12
Народ помогите Чат проверить..


1-36691
Drag0n
2003-12-02 17:29
2003.12.12
Нужен компонент типа


1-36624
Навичек
2003-12-01 12:11
2003.12.12
Консольное приложение вылетает на end.


3-36540
Andrey__
2003-11-20 13:44
2003.12.12
ADO+Access2000+@@identity





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский