2008-09-24 3 views
0

У меня есть приложение, которое ведет себя как слайд-шоу для всех изображений в папке. Это написано в Borland C++ Builder (9). В настоящее время он использует какой-то заимствованный код, чтобы сбрасывать имена файлов в список и сохранять элементы списка в виде текстового файла.Заполнение базы данных именами файлов из каталогов

Я хочу обновить это, чтобы имена файлов были сохранены в соответствующей базе данных, чтобы я мог включать дополнительные поля и делать с ними правильные SQL-вещи.

Так что в принципе я смог бы его обработать, если бы увидел, что код «образца» делает то же самое.

Так что, если кто-нибудь знает какой-либо код, который сделает это, я был бы умен. Он должен иметь возможность делать это на определенных типах файлов ... не только на всех файлах.

ответ

1

В основном вы можете написать рекурсивную функцию с параметром TDataSet.

(я не мог скомпилировать мой код, так что вы получите его «как есть»)

void AddFiles(AnsiString path, TDataSet *DataSet) 
{ 
TSearchRec sr; 
int f; 
    f = FindFirst(path+"\\*.*", faAnyFile, sr); 
    while(!f) 
    { 
     if(sr.Attr & faDirectory) 
     { 
      if(sr.Name != "." && sr.Name != "..") 
      { 
       path.sprintf("%s%s%s", path, "\\", sr.Name); 
       AddFiles(path, DataSet); 
      } 
     } 
     else 
     { 
      DataSet->Append(); 
      DataSet->FieldByName("Name")->Value = sr.Name; 
      /* other fields ... */ 
      DataSet->Post(); 
     } 
     f = FindNext(sr); 
    } 
    FindClose(sr); 
} 
+0

Большое спасибо за это. Я попробую, когда смогу, к сожалению, не сразу. Я дам вам знать результат. – MrVimes 2008-09-25 00:12:18