|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
| Подскажите, возможно ли в типизированный файл сохранять другие файлы? Я пробовал в record добавить переменную Img: TImage: type Data=record Img: TImage; end; TDataArray = Array of Data; TTypeFile = File of Data; Дальше пытался для начала в массив загрузить изображение ... var fArray: TDataArray; begin SetLength(.... ... fArray[1].Img.Picture.LoadFromFile('<путь к файлу>'); И на этом этапе Delphi начинал ругаться. Что не так, или такое вообще нельзя сделать и надо использовать TMemoryStream для таких веще?
|
|
|
|
|
новичок
      
участник
Last Login: 04.06.2006 19:06
Сообщ.: 6,
Visits: 73
|
|
fArray[1].Img.Pictu... должен быть с нуливого индекса тогда ругаться точно перестанет.
TImage это класс который в файл по моему засунуть нельз.
К томуже почему TTypeFile = File of Data ведь получается только один блок? Но тогда TTypeFile = File of TDataArray нельзя делать он должен быть полностью типизирован и ограничен.
Подобными вещами я занимался но потом нашёл в нете что то готовое (какуюто компоненту) и там целый класс занимался загрузкой и выгрузкой.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
| на все есть свои ограничения. в том числе и на типированные файлы. нельзя, например делать file of fille(и все что явно или неявно это предполагает)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
Спасибо за ответы. Я для решения своей задачи стал использовать TMemoryStream, сначала все файлы сохраняю в этот MemoryStream, а потом пишу файл. В интернете есть статья "Как склеить несколько файлов в один". Есть недостатки некоторые в предложенном исходнике: -например, если фалов будет много, то будет задействован большой объем памяти, поэтому надо периодически сохранять файл, и далее дозаписывать в него. Вопрос в том, как дозаписать. Я еще не думал, но идеи есть. Если у кого есть свои идей, буду рад почитать.-второй недостаток, это скорее не недостаток, а просто опять же еще не думал. Сохранить все файлы в один не трудно, для начала можно даже и без дозаписей, трудность потом извлечь эти файлы. Надо знать сколько фалов сохранено в один. Можно конечно писать первым фалом всякую необходимую информацию о том сколько фалов и их размеры, можно попробовать что-нибудь с EOF. Одним словом, если есть какие предложения на эту тему пишите! Еще раз всем спасибо!
|
|
|
|
|
Supreme Being
      
участник
Last Login: 29.09.2007 22:12
Сообщ.: 343,
Visits: 3 388
|
|
| А не проще ли БД использовать?Заиметь таблицы с БЛОБ полем и туда файло ложить/оттуда вытаскивать ?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 12.06.2008 11:23
Сообщ.: 96,
Visits: 535
|
|
| Проще, но необходимо реализовать именно, как я писал выше.
|
|
|
|