家庭旅馆 国内机票版 海运专栏 房版

VC++编程问题

最大赞力
0.00
当前赞力
100.00%
各位朋友本着友谊互爱的精神,这里提一个于移民无关的问题。请有经验的朋友指点一下。

程序功能要求:
要测试一个目录中生成日期在3天内的文件的文件名称是否连续(文件以数字字符组成,正常情况下应该连续),如果出现号码跳跃则提示。
.
问题:
如何取出一个目录下的所有文件到数组(用哪个MFC?),有没有对数组自动排序的函数?
请有经验的朋友支持!有电话更好
 

admin

管理成员
最大赞力
8.21
当前赞力
100.00%
liming,笨笨不写MFC程序已经很多年了(听起来怎么这样耳熟? :wdb4: :wdb4: )

下面的代码没有测试,供参考:

代码:
#include "stdafx.h"

void test()
{
     // Get File Name List
    CStringList  listName;
   CFileFind finder;
   BOOL bWorking = finder.FindFile("*.*"); // current directory?
   while (bWorking)
   {
      bWorking = finder.FindNextFile();
      listName.AddTail(finder.GetFileName());
   }

   //Get Min and Max File Number
	CString szFileName;
	int minFilename , maxFilename , tempFilename ;
	POSITION pos = listName.GetHeadPosition();
	if( pos != NULL )
	{
		szFileName =  listName.GetNext( pos );
		tempFilename= atoi(szFileName );
		minFilename = tempFilename;
		maxFilename = tempFilename;
	}

	while ( pos != NULL )
	{
		szFileName =  listName.GetNext( pos );
		tempFilename= atoi(szFileName );
		if( tempFilename > maxFilename )
			maxFilename  = tempFilename ;
		
		if( tempFilename < minFilename )
			minFilename = tempFilename ;
		
	}
	
	// get what is missing
	for( int iFileName = minFilename; iFileName < maxFilename  ; iFileName++ )
	{
		CFile DataFile;
		CFileException fe;
		
		if ( DataFile.Open( CString(iFileName), CFile::modeRead , &fe) )
		{
		 // i am here
		}
	}
}
 

admin

管理成员
最大赞力
8.21
当前赞力
100.00%
另外笨笨注意到三天内得要求,修正提供这个版本:

代码:
#include "stdafx.h"

void test()
{
   // Get File Name List 
   CStringList  listName;
   CFileFind finder;
   BOOL bWorking = finder.FindFile("*.*"); // current directory? 
   while (bWorking)
   {
      bWorking = finder.FindNextFile();

		// in three days
	  CTime tempTime;
	  CTime TimeNow = CTime::GetCurrentTime();
	  finder.GetLastWriteTime(tempTime);

	  CTimeSpan TimeSpan;
	  TimeSpan = TimeNow - tempTime;	

	  if( TimeSpan.GetTotalMinutes() < 3*24*60 )
		listName.AddTail(finder.GetFileName());
   }

  //Get Min and Max File Number 
  
	CString szFileName;
	int minFilename , maxFilename , tempFilename ;
	POSITION pos = listName.GetHeadPosition();
	if( pos != NULL )
	{
		szFileName =  listName.GetNext( pos );
		tempFilename= atoi(szFileName );
		minFilename = tempFilename;
		maxFilename = tempFilename;
	}

	while ( pos != NULL )
	{
		szFileName =  listName.GetNext( pos );
		tempFilename= atoi(szFileName );
		if( tempFilename > maxFilename )
			maxFilename  = tempFilename ;
		
		if( tempFilename < minFilename )
			minFilename = tempFilename ;	
	}
	
	// get what is missing
	for( int iFileName = minFilename; iFileName < maxFilename  ; iFileName++ )
	{
		CFile DataFile;
		CFileException fe;
	
		CString strValue;
		strValue.Format( "%d", iFileName); 

		if ( !DataFile.Open( strValue, CFile::modeRead , &fe) )
		{
		 // i am here
		}
	}
}
 

Similar threads

家园推荐黄页

家园币系统数据

家园币池子报价
家园币最新成交价
家园币总发行量
加元现金总量
家园币总成交量
家园币总成交价值

池子家园币总量
池子加元现金总量
池子币总量
1池子币现价
池子家园币总手续费
池子加元总手续费
入池家园币年化收益率
入池加元年化收益率

微比特币最新报价
毫以太币最新报价
微比特币总量
毫以太币总量
家园币储备总净值
家园币比特币储备
家园币以太币储备
比特币的加元报价
以太币的加元报价
USDT的加元报价

交易币种/月度交易量
家园币
加元交易对(比特币等)
USDT交易对(比特币等)
顶部