打开DXF参考手册,在DXF参考手册中,点击“索引”-->输入“HEADER”,在ACADBER字段有acd的版本信息:
下面是用C语言,写的判断dxf文件的版本的代码:
/*-------------------------------------------------- *读取DXF文件中,HEADER段中DXF文件版本号的小程序。 *----------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #define STRLEN 30 int main(int argc, char *argv[]) { int code; /*存储组码*/ char codevalue[STRLEN]; /*存储组码对应的值*/ FILE *dxf; /*文件指针*/ char filename[STRLEN]; /*文件名*/ char suffix[6] = ".dxf"; /*只输入文件名打开DXF文件,不用输后缀.*/ printf("请输入文件名:"); gets(filename); strcat(filename,suffix); dxf = fopen(filename,"r"); /*打开文件进行读操作*/ if(!dxf) { printf("打开文件出错!/n按任意键退出..."); getch(); exit(0); } else { printf("文件已经打开.\n正在读取.../n"); } while(!feof(dxf)) { fscanf(dxf,"%d",&code); fscanf(dxf,"%s",codevalue); if(code == 2 && strcmp(codevalue,"HEADER")==0) { fscanf(dxf,"%d",&code); fscanf(dxf,"%s",codevalue); if(strcmp(codevalue,"$ACADVER")==0) { fscanf(dxf,"%d",&code); fscanf(dxf,"%s",codevalue); if(strcmp(codevalue,"AC1006")==0) { printf("AutoCAD版本为R10."); } else if(strcmp(codevalue,"AC1009")==0) { printf("AutoCAD版本为R11和R12."); } else if(strcmp(codevalue,"AC1012")==0) { printf("AutoCAD版本为R13."); } else if(strcmp(codevalue,"AC1014")==0) { printf("AutoCAD版本为R14."); } else if(strcmp(codevalue,"AC1015")==0) { printf("AutoCAD版本为AutoCAD 2000."); } else if(strcmp(codevalue,"AC1018")==0) { printf("AutoCAD版本为AutoCAD 2004."); } else { printf("不能识别的AutoCAD版本!"); break; } } } } fclose(dxf); /*关闭文件*/ printf("\n文件已经关闭."); printf("\nPress any key to halt..."); getch(); return 0; }
效果如下:
原文地址:http://blog.csdn.net/sanqima/article/details/37741089