在某一目录下存有“R1-R4.txt”,“R6-R8.txt”,“R2-R6.txt”,“R4-R8.txt”这几个文件,我最后想通过读取以上文件的数据传递来建立“R1-R2.txt”文件,也就是让程序自动查找并读取这些文件(走“R1-->R4-->R8-->R6-->R2”的路线),请问大家有什么好的方法么?
我的想法是先搜索与R1相关的文件(用到模糊查找文件,不会用),再依次模糊查找,直到找到R2!各位大虾看看还有什么好的方法不?

解决方案 »

  1.   

    system("dir R1* > tmpres.txt); 然后把tmpres.txt里面的内容读出来
      

  2.   

    给你一个例子,查找文件很简单的#include <windows.h>
    #include <string.h>
    #include <stdio.h>int main(int argc, char *argv[])
    {
       WIN32_FIND_DATA FindFileData;
       HANDLE hFind = INVALID_HANDLE_VALUE;
       char DirSpec[MAX_PATH];  // directory specification
       DWORD dwError;   printf ("Target directory is %s.\n", argv[1]);
       strncpy (DirSpec, argv[1], strlen(argv[1])+1);
       strncat (DirSpec, "\\R1-*.txt", 9);   hFind = FindFirstFile(DirSpec, &FindFileData);
       if (hFind == INVALID_HANDLE_VALUE) 
       {
          printf ("Invalid file handle. Error is %u\n", GetLastError());
          return (-1);
       } 
       else 
       {
          printf ("First file name is %s\n", FindFileData.cFileName);
          while (FindNextFile(hFind, &FindFileData) != 0) 
          {
             printf ("Next file name is %s\n", FindFileData.cFileName);
          }
        
          dwError = GetLastError();
          FindClose(hFind);
          if (dwError != ERROR_NO_MORE_FILES) 
          {
             printf ("FindNextFile error. Error is %u\n", dwError);
             return (-1);
          }
       }
       return (0);
    }
      

  3.   

    CFileFind 遍历你指定的文件夹用GetFileName取得文件名保存在一个CString变量里
    然后用CString的Find来判断你提供的文件名关键字(R1)是否在你取得的文件名中(R1-R4.txt)
    从而判断是否是你找的文件
    至于文件内容得你自己判断了这是MFC里的
    如果在控制台程序下就和2楼的一样
      

  4.   

    这是一个图的问题,可以用一个结构或类将图保存起来,然后编写一个递归函数遍历图即可。
    下面是一个参考结构:
    typedef struct _NODE
    {
       CString strName; //  保存“R1”、“R2”、……
       CPtrList listTail; //  保存以strName打头的文件指向的_NODE指针;
       CPtrList listHead; //  保存以strName结尾的文件指向的_NODE指针;
    }NODE,*PNODE;
      

  5.   

    都好深奥啊,呵呵,有没有简单点的方法啊?MFC的
    CString中的Find函数我看了,对中文名好像不管用
    其实我里面的R1等最后都是一个固定的中文名
      

  6.   

    那可以自己写一个方法么 
    通过字节来判断名字是否相符况且对于中文名字也好使啊CString str = "R1-哈哈.txt";
    if(str.Find("哈") != -1)
    {
    MessageBox("yeah");
    }