Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2015, 15:23   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Delphi, хранение музыки и картинки в record-файле

Здравствуйте! Ребят, возможно ли, например, в файл записей записать картинку или музыку?

Вот например:
Код:
type
zap=record
kartinki: array of TbitMap;
muzik: array of ...;
end;

var 
f: file of zap;
w:zap;
Сложности в том, что так писать нельзя, что если я хочу использовать динамический массив? Не буду же я ограничиваться массивом в 1000, например, записей у одной w.записи? (kartinki: array [1..65350]of TBitmap; ) и возможно ли хранить не только JPG и BMP форматы?

ВТорой вопрос не менее важен для меня, возможно ли хранить музыку РАЗЛИЧНЫХ форматов в типизированном файле?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 25.07.2015, 15:49   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
возможно ли, например, в файл записей записать картинку или музыку?
Что такое "Сериализация" знаешь? Записывать в файл можно контент битмапа. Объект записать не получится. Т.е. TBitmap закатать в Stream, а уже его можно записывать, ведь Stream - массив байт.
Цитата:
возможно ли хранить музыку РАЗЛИЧНЫХ форматов в типизированном файле?
Да. Вполне )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2015, 16:24   #3
Artsiom
Форумчанин
 
Аватар для Artsiom
 
Регистрация: 13.07.2012
Сообщений: 357
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да. Вполне )
Как это сделать?!?
Artsiom вне форума Ответить с цитированием
Старый 25.07.2015, 17:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Точно так же - записать в Stream. TMemoryStream, который потом высадить в файл записей потоком.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.07.2015, 17:31   #5
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Никогда не работал с tMemoryStream, есть пример кода? Спасибо)


Для разных форматов картинок нужно использовать tBitMap, или есть что-нибудь более универсальное?

Такой же вопрос и про музыкальные файлы разных типов.

Спасибо)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 25.07.2015, 19:43   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
есть пример кода?
Что, хелпа нет? Или за неуплату отключили?
Код:
var ms:TMemoryStream;
...
ms:=TMemoryStream.Create;
Bitmap.SaveToStream(ms);
ms.Position:=0;
...
Дальше ms пишем в файл.
Как писать в файл стрим это тебе домашнее задание.
Подсказываю: TFileStream и метод CopyFrom
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2015, 02:09   #7
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Вот, нашел сохранение самого, вроде, компонента в текстовый файл, но не могу понять-зачем использовать memoryStream?

Код:
var
  fs: TFileStream;
  n: Integer;
  s: string;
begin
  fs := TFileStream.Create('sample.txt', fmCreate);
  try
    fs.WriteComponent(Label1);
    n := 5650;
    fs.Write(n, SizeOf(Integer));
    { При записи строк необходимо сообщить методу Write о том,
      что запись должна начинаться с первого символа }
    s := 'Some text';
    fs.Write(s[1], Length(s));
  finally
    fs.Free;
  end;  // завершение конструкции try (fs)
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 26.07.2015, 09:46   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а. Старый способ сериализации )
Давно я его не видел в действии. Ты с ним поаккуратнее, хорошо если в твоей Делфи он нормально работает - используй на здоровье.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2015, 10:03   #9
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

А в других версиях наблюдались сбои?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 26.07.2015, 11:25   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не знаю. В D6 сбои были серьезные. Возможно в ХЕ уже сделали получше. Я в любом случае не использовал эту методику.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение БД (картинки) Sashams93 Общие вопросы Delphi 16 24.04.2013 17:31
Хранение БД в одном файле D_E_N БД в Delphi 3 18.07.2009 14:01
Упорядоченное хранение в файле NSvirus Паскаль, Turbo Pascal, PascalABC.NET 1 03.06.2009 12:04
хранение данных в файле (dc++) AsabeasT Общие вопросы Delphi 2 27.03.2009 11:57
изменение музыки и картинки при запуске windos XP veter_s_morya Windows 4 09.06.2008 14:43