Domanda

Ho un'applicazione che si comporta come una presentazione per tutte le immagini in una cartella. È scritto in Borland's C ++ Builder (9). Attualmente utilizza un codice preso in prestito per gettare i nomi dei file in una casella di riepilogo e salvare gli elementi della casella di riepilogo come file di testo.

Voglio aggiornare questo in modo che i nomi dei file siano memorizzati in un database adeguato in modo da poter includere campi extra e fare cose SQL appropriate con esso.

Quindi, fondamentalmente, sarei in grado di risolverlo se vedessi un codice 'sample' fare la stessa cosa.

Quindi, se qualcuno fosse a conoscenza di un codice che lo fa, sarei grato. Deve essere in grado di farlo su determinati tipi di file ... non solo su tutti i file.

È stato utile?

Soluzione

Fondamentalmente devi scrivere una funzione ricorsiva con un parametro TDataSet.

(Non ho potuto compilare il mio codice, quindi lo ottieni " come è ")

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);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top