invdoc.cpp
上传用户:panfucai
上传日期:2022-05-28
资源大小:4678k
文件大小:1k
源码类别:

多国语言处理

开发平台:

Visual C++

  1. //
  2. # include "invdoc.h"
  3. PSTRTABLE ConstructInvDoc(PSTRTABLE pTable)
  4. {
  5. PSTRTABLE pDoc = new STRTABLE[pTable->iCount + 1];
  6. memcpy(pDoc, pTable, sizeof(STRTABLE));
  7. int iPos = 1;
  8. for(long i = 1; i <= pTable->iCount; i++)
  9. {
  10. if((pTable + i)->pFileList != NULL)
  11. {
  12. memcpy(pDoc + iPos, pTable + i, sizeof(STRTABLE));
  13. SortFileListByTimes(pDoc + iPos);
  14. iPos++;
  15. }
  16. }
  17. pDoc->iCount = iPos - 1;
  18. return pDoc;
  19. }
  20. bool OutputInvDoc(PSTRTABLE pTable, CHAR strPath[])
  21. {
  22. wstring strTemp;
  23. wofstream objFile;
  24. locale loc("chs");
  25. objFile.imbue(loc);
  26. objFile.open(strPath, ios::out);
  27. if(!(objFile.is_open()))
  28. {
  29. return false;
  30. }
  31. PFILELIST pFileList = NULL;
  32. for(long i = 1; i <= pTable->iCount; i++)
  33. {
  34. objFile<<"("<<(pTable + i)->pWord<<" "<<(pTable + i)->iOccuredFiles<<" "<<(pTable + i)->iOccuredTimes<<")";
  35. pFileList = (pTable + i)->pFileList;
  36. while(pFileList != NULL)
  37. {
  38. objFile<<"  ("<<pFileList->iDocID<<" "<<pFileList->iTimes<<")";
  39. pFileList = pFileList->pNext;
  40. }
  41. objFile<<endl;
  42. }
  43. objFile.close();
  44. return true;
  45. }