000
15.03.2011, 23:57 Uhr
StefanKittel
|
Hallo, ich möchte gerne in einer Liste ca. 1.000.000 Einträge zwischenspeichern und wiederfinden. Es sind alles vollständige Dateinamen mit Pfad. Ich habe es zur Zeit mit einer sortierten CStringList gelöst. Aber es dauert ca. 90 Minuten die Liste zu füllen und 12 Stunden alle Einträge zu finden.
Also dachte ich folgendes: Ich teile die Einträge in Pfad und Dateinamen auf. In einer Liste speichere ich Einträge mit dem Verzeichnissnamen und eine weitere Liste mit den dazugehörigen Dateien.
Aber ich bekomme es nicht hin. Auch nicht mit CArray oder vector.
C++: |
typedef struct DirListItemTag { CString DirName; CSortStringList FileList; } DirListItem; typedef CList <DirListItem, DirListItem> DirList;
class CSortFilenameList : public CSortStringList { public: DirList m_DirList;
void AddFileNameWithDir(CString _FileNameWithDir); void AddFileNameWithDir(CString _DirName, CString _FileName);
BOOL FindFileNameWithDir(CString _FileNameWithDir, BOOL _RemoveItem = FALSE); BOOL FindFileNameWithDir(CString _DirName, CString _FileName, BOOL _RemoveItem = FALSE);
void Test(void); };
|
error C2248: "CObject::CObject": Kein Zugriff auf private Member, dessen Deklaration in der CObject-Klasse erfolgte.
Hat da mal bitte Jemand eine Idee?
Danke
Stefan |