判断dxf文件的版本

      打开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

 

 

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

sanqima

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值