打开DXF參考手冊,在DXF參考手冊中,点击“索引”-->输入“HEADER”,在ACADVER字段有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;
}
效果例如以下:
注意:要把.dxf文件和代码放到同一个文件夹下。
dxf參考手冊(中文版):http://download.csdn.net/detail/sanqima/7629929