在某一目录下存有“R1-R4.txt”,“R6-R8.txt”,“R2-R6.txt”,“R4-R8.txt”这几个文件,我最后想通过读取以上文件的数据传递来建立“R1-R2.txt”文件,也就是让程序自动查找并读取这些文件(走“R1-->R4-->R8-->R6-->R2”的路线),请问大家有什么好的方法么?
我的想法是先搜索与R1相关的文件(用到模糊查找文件,不会用),再依次模糊查找,直到找到R2!各位大虾看看还有什么好的方法不?
我的想法是先搜索与R1相关的文件(用到模糊查找文件,不会用),再依次模糊查找,直到找到R2!各位大虾看看还有什么好的方法不?
#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);
}
然后用CString的Find来判断你提供的文件名关键字(R1)是否在你取得的文件名中(R1-R4.txt)
从而判断是否是你找的文件
至于文件内容得你自己判断了这是MFC里的
如果在控制台程序下就和2楼的一样
下面是一个参考结构:
typedef struct _NODE
{
CString strName; // 保存“R1”、“R2”、……
CPtrList listTail; // 保存以strName打头的文件指向的_NODE指针;
CPtrList listHead; // 保存以strName结尾的文件指向的_NODE指针;
}NODE,*PNODE;
CString中的Find函数我看了,对中文名好像不管用
其实我里面的R1等最后都是一个固定的中文名
通过字节来判断名字是否相符况且对于中文名字也好使啊CString str = "R1-哈哈.txt";
if(str.Find("哈") != -1)
{
MessageBox("yeah");
}