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

📄 unit1.cpp

📁 一个医学的软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            case IDNO:
                OpenFiled=false;
                pf=NULL;
                DataFileName=NULL;

                Editable=false;
                Saveable=false;
                Dataable=false;
                Measure=0;
                Pointable=false;
                Coordinate=false;
                MeasureKind=false;
                CrossCursor=false;
                Form1->Image1->Cursor=crDefault;
                Form1->suiStatusBar1->Panels->Items[0]->Text="请打开文件";

                Form1->N9->Caption="显示坐标系";
                Form1->N10->Caption="显示波形参数";
                Form1->N27->Caption="显示光标";
                Image1->Picture=NULL;
                data_read();

                break;
            case IDCANCEL:
                break;
        }
    }
    else
        data_read();
}
//---------------------------------------------------------------------------
void  TForm1::data_read()
{
    //FILE *pf;
	short int i,cur_num,tmp,num;
	long ref,next_ref;
	char justify[0x10];
	struct comframe stim[8][8];
	short int ni;
    AnsiString temp_path;

   	struct trialparam tmpparam;

    trial=&trialgroup;

	ni=trial_dis.stim_num;
    num=trial_dis.trial_num;
	memcpy(&tmpparam,trial,sizeof(struct trialparam));
    ini_dis_trial();
    NewDataType=false;

    try{
        pf=NULL;
        if(OpenDialog1->Execute())
        {

           if((pf=fopen(OpenDialog1->FileName.c_str(),"r+b"))!=NULL)
           {
                fseek(pf,0,SEEK_SET);
	            fgets(justify,0x10,pf);
	            if(strcmp(justify,"BME HUST DATA")!=0&&strcmp(justify,"NEW HUST DATA")!=0)
                {
                    ShowMessage("不能打开文件!");
                    pf=NULL;
                }
           }
           else
           {
                ShowMessage("不能打开文件!");
                pf=NULL;
           }
           DataFileName=OpenDialog1->FileName.c_str();
           suiForm1->Caption="波形处理工具  "+AnsiString(DataFileName);
        }
    }
    catch(...)
    {
        pf=NULL;
    }
    if(pf!=NULL)
    {
        Form1->Caption="波形处理工具"+AnsiString(OpenDialog1->FileName);
        //Form1->Image1->Picture=NULL;
        next_ref=1;
        ref=0;
        cur_num=0;

        while(1){
            if(cur_num==1)
                break;

            fseek(pf,ref+0x10,SEEK_SET);
            fread(&tmp,sizeof(short int),1,pf);
            fread(&tmp,sizeof(short int),1,pf);
            fread(&trial->stim_during,sizeof(short int),1,pf);
            fread(&trial->sample_inter,sizeof(short int),1,pf);
            fread(&trial->sample_delay,sizeof(short int),1,pf);
            fread(&trial->hold_potential,sizeof(short int),1,pf);
            fread(&tmp,sizeof(short int),1,pf);
            fread(&tmp,sizeof(short int),1,pf);
            trial->stim_number=2;
            trial->stim_data=trial_time_valuetopoint(trial,trial->stim_during);

            next_ref=ref+0x300+trial->stim_number*trial->stim_data*sizeof(short unsigned);

            strset(justify,'\0');
            fseek(pf,next_ref,SEEK_SET);
            fgets(justify,0x10-1,pf);
            if(strcmp(justify,"BME HUST DATA"))
                break;
            ref=next_ref;
            cur_num++;
        } //End while(1);

        if(num>cur_num){
            ref=01;
            cur_num=0;
        }
        //fseek(pf,ref+0x10,SEEK_SET);
        fseek(pf,ref,SEEK_SET);
        fgets(justify,0x10,pf);
        fseek(pf,0x10,SEEK_SET);
        fread(&tmp,sizeof(short int),1,pf);
        fread(&tmp,sizeof(short int),1,pf);
        fread(&trial->stim_during,sizeof(short int),1,pf);
        fread(&trial->sample_inter,sizeof(short int),1,pf);
        fread(&trial->sample_delay,sizeof(short int),1,pf);
        fread(&trial->hold_potential,sizeof(short int),1,pf);
        fread(&tmp,sizeof(short int),1,pf);
        fread(&tmp,sizeof(short int),1,pf);
        fread(&trial->stim_number,sizeof(short int),1,pf);
        fread(&tmp,sizeof(short int),1,pf);
        fread(&trial->out_t,sizeof(short int),1,pf);
        fread(&trial->out_t1,sizeof(short int),1,pf);
        fread(&trial->out_l,sizeof(short int),1,pf);
        fread(&trial->out_n,sizeof(short int),1,pf);
        fread(&trial->out_delay,sizeof(short int),1,pf);
        fread(&trial->out_amp,sizeof(short int),1,pf);

        trial->stim_data=trial_time_valuetopoint(trial,trial->stim_during);

        fseek(pf,ref+0x30,SEEK_SET);
        fread(&((trial->inch[0]).num),sizeof(short int),1,pf);
        fread(&((trial->inch[0]).gain),sizeof(float),1,pf);
        fread(&((trial->inch[1]).num),sizeof(short int),1,pf);
        fread(&((trial->inch[1]).gain),sizeof(float),1,pf);

        fseek(pf,ref+0x60,SEEK_SET);
        fread(&((trial->outch).gain),sizeof(float),1,pf);

        fseek(pf,ref+0x80,SEEK_SET);
        fread(&((trial->inch[0]).unit),sizeof(char),4,pf);
        fread(&((trial->inch[1]).unit),sizeof(char),4,pf);
        fseek(pf,0xa0,SEEK_SET);
        fread((trial->outch).unit,sizeof(char),4,pf);

        fseek(pf,ref+0xb0,SEEK_SET);
        fread(&record_clock,sizeof(REALTIME_T),1,pf);
    	fread(&count_clock,sizeof(REALTIME_T),1,pf);

        //fread(&sys_date,sizeof(struct date),1,pf);


        fread(&sys_date.da_mon,sizeof(char),1,pf);
        fread(&sys_date.da_day,sizeof(char),1,pf);
        fread(&sys_date.da_year,sizeof(short int),1,pf);
        fseek(pf,ref+0x100,SEEK_SET);
        fread(&(stim[0][0]),sizeof(struct comframe),8*8,pf);
        trial->out_amp=stim[0][0].value;
        trial->out_t1=stim[0][0].time;
        trial->hold_potential=stim[1][0].value;
        trial->out_t=trial->out_t1+stim[1][0].time;

        trial->stim_number=tmpparam.stim_number;

        fseek(pf,ref+0x200,SEEK_SET);
        if(strcmp(justify,"NEW HUST DATA")==0)
        //读取试验参数
        {
            NewDataType=true;
            fseek(pf,ref+0x200,SEEK_SET);
            for(i=0;i<=trial_dis.trial_num;i++)
            {
                fread(&(trial->ap_param[i].vmax),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].rp),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].apa),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].apd20),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].apd50),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].apd90),sizeof(int),1,pf);
                fread(&(trial->ap_param[i].fc),sizeof(int),1,pf);
            }
        }
        else
        {
                trial->ap_param[0].vmax=0;
                trial->ap_param[0].rp=0;
                trial->ap_param[0].apa=0;
                trial->ap_param[0].apd20=0;
                trial->ap_param[0].apd50=0;
                trial->ap_param[0].apd90=0;
                trial->ap_param[0].fc=0;
        }

        fseek(pf,ref+0x300,SEEK_SET);
        if(ni>=0&&ni<trial->stim_number){
            trial->in_data_buff[ni]=new short unsigned[trial->stim_data];
            trial->fc_data_buff[ni]=new short unsigned[trial->stim_data];
            fread(trial->in_data_buff[ni],sizeof(short unsigned),(size_t)trial->stim_data,\
                pf);

            fread(trial->fc_data_buff[ni],sizeof(short unsigned),(size_t)trial->stim_data,\
                pf);
        }
        fclose(pf);
        if(MultiImage==false)
        {
            Form1->Button1->Enabled=true;
            Form1->Button2->Enabled=true;
            Form1->ToolButton3->Enabled=true;
            Form1->ToolButton4->Enabled=true;
            Form1->ToolButton6->Enabled=true;
            Form1->ToolButton7->Enabled=true;
            Form1->ToolButton9->Enabled=true;
            Form1->ToolButton10->Enabled=true;
            Form1->ToolButton12->Enabled=true;
            Form1->ToolButton13->Enabled=true;
            Form1->ToolButton15->Enabled=true;
            Form1->ToolButton16->Enabled=true;
            //文件下
            Form1->S1->Enabled=true;
            Form1->I1->Enabled=true;
            Form1->N3->Enabled=true;
            Form1->N28->Enabled=true;
            //编辑下
            Form1->N7->Enabled=true;
            Form1->N8->Enabled=true;
            Form1->N9->Enabled=true;
            Form1->N10->Enabled=true;
            Form1->N13->Enabled=true;
            //测量下
            Form1->N17->Enabled=true;
            Form1->N22->Enabled=true;
            Form1->N24->Enabled=true;
            Form1->N27->Enabled=true;
            //帮助下
            Form1->N15->Enabled=true;
        }
        else
        {
            temp_path="c:\\MyTempImage.bmp";
            Form1->Image1->Picture->SaveToFile(temp_path);
        }
        OpenFiled=true;
        Form1->Button1->Click();
        Form1->suiStatusBar1->Panels->Items[0]->Text="显示状态";
    }

}
//---------------------------------------------------------------------------
/****************************************************************************
Edit part of the data
****************************************************************************/
void __fastcall TForm1::N7Click(TObject *Sender)
{
    if(Application->MessageBox("开始编辑", "Message", MB_YESNO)==IDYES)
    {
        Editable=true;
        Saveable=true;

        imageclick=2;
        Form1->suiStatusBar1->Panels->Items[0]->Text="编辑状态_局部编辑 请确定起始点";
        if(Pointable==true)
            Pointable=false;
        Measure=0;
        Form1->N19->Enabled=false;
        Form1->N20->Enabled=false;
        Form1->APD201->Enabled=false;
        Form1->APD501->Enabled=false;
        Form1->APD1->Enabled=false;
        Form1->ToolButton6->Enabled=false;
        Form1->ToolButton7->Enabled=false;
        Form1->ToolButton9->Enabled=false;
        Form1->ToolButton10->Enabled=false;
        Form1->ToolButton12->Enabled=false;
        Form1->ToolButton13->Enabled=false;
        Form1->ToolButton15->Enabled=false;
        Form1->ToolButton16->Enabled=false;
    }
}
//---------------------------------------------------------------------------
/****************************************************************************
Edit Point of the data
****************************************************************************/
void __fastcall TForm1::N8Click(TObject *Sender)
{
    if((Application->MessageBox("开始逐点编辑", "Message", MB_YESNO))==IDYES)
    {
        Editable=true;
        Saveable=true;
        if(Pointable==false)
            Pointable=true;
        Measure=0;
        Form1->N19->Enabled=false;
        Form1->N20->Enabled=false;
        Form1->APD201->Enabled=false;
        Form1->APD501->Enabled=false;
        Form1->APD1->Enabled=false;
        Form1->ToolButton6->Enabled=false;
        Form1->ToolButton7->Enabled=false;
        Form1->ToolButton9->Enabled=false;
        Form1->ToolButton10->Enabled=false;
        Form1->ToolButton12->Enabled=false;
        Form1->ToolButton13->Enabled=false;
        Form1->ToolButton15->Enabled=false;
        Form1->ToolButton16->Enabled=false;
        Form1->suiStatusBar1->Panels->Items[0]->Text="编辑状态_点编辑";
    }
}
//---------------------------------------------------------------------------
/***********************************************************************
切换是否显示坐标系
***********************************************************************/
void __fastcall TForm1::N9Click(TObject *Sender)
{
    if(Coordinate==true)
    {
        Coordinate=false;
        //ShowMessage("不显示坐标系");
        Form1->N9->Caption="显示坐标系";
    }
    else
    {
        Coordinate=true;
        //ShowMessage("显示坐标系");
        Form1->N9->Caption="不显示坐标系";
    }
    Form1->Button1->Click();

}
//---------------------------------------------------------------------------
/***********************************************************************
切换是否显示波形参数
***********************************************************************/
void __fastcall TForm1::N10Click(TObject *Sender)
{
    if(Dataable==false)
    {
        Dataable=true;
        //ShowMessage("显示波形参数");
        Form1->N10->Caption="不显示波形参数";
    }
    else
    {
        Dataable=false;
        //ShowMessage("不显示波形参数");
        Form1->N10->Caption="显示波形参数";
    }
    Form1->Button1->Click();
    Form1->Button3->Click();

}
//---------------------------------------------------------------------------
/***********************************************************************
刷新显示
***********************************************************************/
//---------------------------------------------------------------------------
/***********************************************************************
切换多图和单图状态
***********************************************************************/
void __fastcall TForm1::N13Click(TObject *Sender)
{
    AnsiString temp_path;

    if(MultiImage==true)
    {
        if(Application->MessageBox("进入单波显示状态", "Message", MB_YESNO)==IDYES)
        {

⌨️ 快捷键说明

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