invdoc.cpp
上传用户:panfucai
上传日期:2022-05-28
资源大小:4678k
文件大小:1k
- //
- # include "invdoc.h"
- PSTRTABLE ConstructInvDoc(PSTRTABLE pTable)
- {
- PSTRTABLE pDoc = new STRTABLE[pTable->iCount + 1];
- memcpy(pDoc, pTable, sizeof(STRTABLE));
- int iPos = 1;
- for(long i = 1; i <= pTable->iCount; i++)
- {
- if((pTable + i)->pFileList != NULL)
- {
- memcpy(pDoc + iPos, pTable + i, sizeof(STRTABLE));
- SortFileListByTimes(pDoc + iPos);
- iPos++;
- }
- }
- pDoc->iCount = iPos - 1;
- return pDoc;
- }
- bool OutputInvDoc(PSTRTABLE pTable, CHAR strPath[])
- {
- wstring strTemp;
- wofstream objFile;
- locale loc("chs");
- objFile.imbue(loc);
- objFile.open(strPath, ios::out);
- if(!(objFile.is_open()))
- {
- return false;
- }
- PFILELIST pFileList = NULL;
- for(long i = 1; i <= pTable->iCount; i++)
- {
- objFile<<"("<<(pTable + i)->pWord<<" "<<(pTable + i)->iOccuredFiles<<" "<<(pTable + i)->iOccuredTimes<<")";
- pFileList = (pTable + i)->pFileList;
- while(pFileList != NULL)
- {
- objFile<<" ("<<pFileList->iDocID<<" "<<pFileList->iTimes<<")";
- pFileList = pFileList->pNext;
- }
- objFile<<endl;
- }
- objFile.close();
- return true;
- }