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

📄 getradahead.c

📁 利用C语言读取探地雷达数据头 探地雷达是一种常用的地质调查用仪器
💻 C
字号:

#include "stdio.h"
#include "conio.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格式头文件结构体*/
{
  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          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;

struct get8  /*定义8位存储*/
{
  unsigned gdv :8;
}gd8;

struct get16 /*定义16位存储*/
{
  unsigned gd :16;
}gd16;


main()
{
    FILE *fp,*fo;/*设置一个打开指针fp,一个保存指针fo*/

    fp=fopen("c:/file1.dzt","rb");/*二进制方式打开DZT格式的文件*/
     fread(&DztHead,sizeof(DztHead),1,fp);/*按头文件大小进行块读取*/

    fclose(fp);
    printf("FileName:%s\nChannel:%d\nAntname:%s\n",DztHead.rh_name,DztHead.rh_nchan,DztHead.rh_antname);
    printf("%d\n",DztHead.rh_data);
    printf("day and time:%d-%d-%d%6d:%d:%d\n%f\n",DztHead.rh_create.month,DztHead.rh_create.day,DztHead.rh_create.year,DztHead.rh_create.hour,DztHead.rh_create.min,2*DztHead.rh_create.sec2,DztHead.rh_sps);

   fo=fopen("c:/test.txt","w");
     fwrite(&DztHead,sizeof(DztHead),1,fo);
     printf("OK");
    fclose(fo);
    getch();
}

⌨️ 快捷键说明

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