Pergunta

Eu tenho um aplicativo que se comporta como uma apresentação de slides de todas as fotos em uma pasta. Ele é escrito em Borland C ++ Builder (9). Ele atualmente usa algum código emprestado para jogar os nomes de arquivo em uma caixa de listagem e salvar os itens de caixa de listagem como um arquivo de texto.

Eu quero atualizar isso para que os nomes de arquivos são armazenados em um banco de dados adequado para que eu possa incluir campos extras e fazer coisas SQL apropriado com ele.

Então, basicamente, eu seria capaz de trabalhar com isso se eu vi algum código 'sample' fazendo a mesma coisa.

Então, se alguém sabe de qualquer código que faz isso eu ficaria grato. Ele precisa ser capaz de fazê-lo em determinados tipos de arquivo ... não apenas todos os arquivos.

Foi útil?

Solução

Você basicamente neeed para escrever uma função recursiva com um parâmetro TDataSet.

(eu não poderia compilar meu código, para que você obtê-lo "como está")

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);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top