⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getradahead.c

📁 用C编写的一个读取DZT格式地质雷达头文件的源代码
💻 C
字号:
/*  Get Rada Data Head */
#include "stdio.h"
#include "conio.h"
#include<stdlib.h>
#include<graphics.h>
/* ........................................................ */
struct DztRDdate /*DZT格式头文件时间结构体*/
{
  unsigned sec2 :5;/*0-30的秒数,显示时要乘2*/
  unsigned min  :6;
  unsigned hour :5;
  unsigned day  :5;
  unsigned month:4;
  unsigned year :7;
} radaDate;
/* ............................................................... */

struct DztradaHand/*DZT格式头文件结构体*/
{
/*ushort 16bit
   short 16bit
   float 32bit
    */
  unsigned short rh_tag; /*DZT头文件标记一般为FF(ASCII为255)*/
  unsigned short rh_data; /*DZT格式头文件的数据偏移量(1024XChannel)*/
  unsigned short rh_nsamp; /*扫描率(采样率)*/
  unsigned short rh_bits;/*数据保存采用的位数(一般为8,16,24,32)*/
  short          rh_zero;
  float          rh_sps;/*扫描道数/秒*/
  float          rh_spm; /*扫描道数/米*/
  float          rh_mpm; /*打MARK标记*/
  float          rh_position;/*点(ns)*/
  float          rh_range;/*时窗*/
  unsigned short rh_npass;
  struct DztRDdate  rh_create;/*创建时间*/
  struct DztRDdate  rh_modif; /*修改时间*/
  unsigned short rh_rgain; /*增益量*/
  unsigned short rh_nrgain; /*增益数*/
  unsigned short rh_text;
  unsigned short rh_ntext;
  unsigned short rh_proc;
  unsigned short rh_nproc;
  unsigned short rh_nchan;/*仪器的通道数量*/
  float          rh_epsr;
  float          rh_top; /*顶点*/
  float          rh_depth; /*所设置时窗的最大深度*/
  char           reserved[31];
  char           rh_dtype;
  char           rh_antname[14];/*所采用的天线频率*/
  unsigned short rh_chanmask;
  char           rh_name[12];/*文件名*/
  unsigned short rh_chksum;
  char           variable[896];
} DztHead;
/* .................................................................................... */
void fprint()/*头文件主要参数打印*/
 {
    printf("\n\n\tFileName:%s\t",DztHead.rh_name);
    printf("\tTime:%d-%d-%d/%d:%d:%d\n\n",DztHead.rh_create.month,DztHead.rh_create.day,DztHead.rh_create.year+1980,DztHead.rh_create.hour,DztHead.rh_create.min,2*DztHead.rh_create.sec2,DztHead.rh_sps);
    printf("\tChannel:%3d\t\tAntname:%s  MHz\n\n",DztHead.rh_nchan,DztHead.rh_antname);
    printf("\tSamples/Scan:%d\tBits/Second:%2d bit\n\n",DztHead.rh_nsamp,DztHead.rh_bits);
    printf("\tPosition:%f nS\tRange:%f nS\n\n",DztHead.rh_position,DztHead.rh_range);
    printf("\tScans/Second:%f\tScans/Meter:%f\n\n",DztHead.rh_sps,DztHead.rh_spm);
    printf("\tTop(m):%f\t\tDepth(m):%f\n\n",DztHead.rh_top,DztHead.rh_depth);
    /*printf("\tLp:%d\t\tHp:%d\n\n",DztHead.rh_proc,DztHead.rh_nproc);
    printf("\nzero= %d",DztHead.rh_zero);*/
    printf("    Pass any keys to exit......\n");
    }
/* ....................................................................................... */


 int openfile()
 {
    FILE *fp;
    char fName[35];
    printf("   Input a path:");
    scanf("%s",fName);

    if((fp=fopen(fName,"rb"))==NULL)
    {
      printf("Cannot open file strike any key exit!");
      getch();
      exit(1);
    }/*带防错处理的二进制方式打开DZT格式的文件*/
    else

 fread(&DztHead,sizeof(DztHead),1,fp);/*按头文件大小进行块读取*/

 }

/*........................................................................*/
void main()
{

    /*FILE *fp,*fo;设置一个打开指针fp,一个保存指针fo*/
    printf("\n\n\t\tDzt format Rada Data display \n\n\n");
     openfile();
     fprint();
    getch();


}




/* .................................................................................. */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -