- UID
- 8484
- 积分
- 82
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-8-5
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
WIN32_FIND_DATA FindData;
char FileName[256];
ads_getstring(NULL,"\n请输入文件名:",FileName);
HANDLE hFind=FindFirstFile(FileName,&FindData);
if(hFind!=INVALID_HANDLE_VALUE)
{
//处理第一个找到的文件
PrintString(FindData.cFileName);
while(FindNextFile(hFind,&FindData))
{
//处理其它找到的文件
PrintString(FindData.cFileName);
}
}
//请问以上代码为何不能遍历文件(非当前目录)?
//怎样修改?
void PrintString(char cFileName[])
{
//以下函数执行正确
AcDbDatabase *pDb=new AcDbDatabase;
AcDbText *pText;
if(Acad::eOk==pDb->readDwgFile(cFileName))
{
AcDbBlockTable *pBlockTable; //定义块表指针
pDb->getSymbolTable(pBlockTable, AcDb::kForRead); //获得当前图形的块指针
AcDbBlockTableRecord *pBlockTableRecord; //定义块表记录指针
pBlockTable->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForRead);//打开模型空间
pBlockTable->close(); //关闭块表
//定义遍历块表记录浏览器,获得指向块表记录的浏览器指针
AcDbBlockTableRecordIterator *pBlockIterator;
pBlockTableRecord->newIterator(pBlockIterator);
ads_printf("\n文件名:%s",cFileName);
//利用循环结构和块表记录的浏览器遍历块表
for(pBlockIterator->start();!pBlockIterator->done();pBlockIterator->step())
{
AcDbEntity *pEntity;
pBlockIterator->getEntity(pEntity,AcDb::kForRead);
const char *pCname=pEntity->isA()->name();
if(strcmp(pCname,"AcDbText")==0)
{
pText=AcDbText::cast(pEntity);
ads_printf("\n字符串:%s",pText->textString());
}
}
delete pBlockIterator;//删除
pBlockTableRecord->close();//关闭块表记录
pText->close();
}
delete pDb;
return;
} |
|