наверное каждый вариант имеет право на существование...
Конкретно у меня работает (уже )так - с интернетсайта в память загружаються картинки (без предвратительного сохраниния на диск), потом через поток сохраняю все в один файл:
TMemoryStream *Stream_Image = new TMemoryStream;
if (RzFlowPanel1->ControlCount > 0)
{
for (i = 0; i RzFlowPanel1->ControlCount; i++)
{
dovidnyk_all = "";
TImage *image5 = (TImage *) RzFlowPanel1->Components[i];
image5->Picture->Graphic->SaveToStream(Stream_Image) ;
dovidnyk_all = dovidnyk_all + + "|PROBEL|";
dovidnyk_all = dovidnyk_all + RzEdit3->Text +"_" + IntToStr(i)+".jpeg" + "|PROBEL|";
dovidnyk_all = dovidnyk_all + image5->Picture->Width + "|PROBEL|";
dovidnyk_all = dovidnyk_all + image5->Picture->Height + "|STROKAEND|";
char *char_dovidnyk_all = dovidnyk_all.c_str();
Stream_Image->Write(char_dovidnyk_all, dovidnyk_all.Length() );
}
Stream_Image->Position = 0;
Stream_Image->SaveToFile("c:\\test.txt");
после загружаю в SQL в табличную переменную и обрабатываю, как мне нужно (ссылка на тему есть выше):
DECLARE @T_list_image TABLE ( name nvarchar(255), width_ INT , height_ INT, file_stream_ varbinary(MAX))
INSERT INTO @T_list_image SELECT name, width_ , height_ , file_stream_ FROM OPENROWSET(BULK 'c:\test.txt', FORMATFILE='c:\values.fmt' ) AS t1;
Сперва хотел передавать через параметр sql-запроса, но там нужно было все усложнять. А так проще получилось...
Вот такая извращенная у меня фантазия )))))
Р.С. Конечно, это упрощенный вариант как пример реализации, а в реальной моей программе все сложнее