Frage

Ich habe eine Anwendung, die für alle Bilder in einem Ordner als Diashow verhält. Es wird in Borland C ++ Builder (9) geschrieben. Es nutzt derzeit einige geliehenen Code die Dateinamen in einem Listenfeld zu werfen und die Listbox Elemente als Textdatei speichern.

Ich mag diese aktualisieren, damit die Dateinamen in einer geeigneten Datenbank gespeichert werden, so dass ich zusätzliche Felder umfassen kann und damit die richtigen SQL Dinge tun.

Also im Grunde würde ich in der Lage sein, es zu trainieren, wenn ich einig ‚Probe‘ Code sehe das gleiche tun.

Wenn also jemand von Code weiß, das dies tut ich dankbar sein würde. Es muss in der Lage sein auf bestimmte Dateitypen zu tun ... nicht nur alle Dateien.

War es hilfreich?

Lösung

Sie neeed im Grunde eine rekursive Funktion mit einem TDataSet Parameter zu schreiben.

(ich konnte meinen Code nicht kompilieren, so dass Sie bekommen es "as is")

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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top