当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·初学者问题 关于论坛制作    »显示摘要«
    摘要: 问题如下 1 asp是否可以制作bbs之类的论坛 2 论坛制作的主旨编程思想是什么 3 什么是sql 4 论坛制作与sql的关系 5 请给一简单例子 6 论坛制作是否与数据库有关,什么关联 ——未完待续 ......
 ·listbox的问题    »显示摘要«
    摘要: 如果将listbox里面的item存到一个数组中? ......


程序结束时的奇怪问题

我编写了一段程序来读取一个数据文件,编好后我运行了一下,能正确读出数据。但当我关闭程序时,报错,错误信息是:projict   projict1.exe   raised   exception   class   eaccessviolation   with   massage   access   violation   at   address   40006834.read   of   address   be8fof84.下面是我编的代码:  
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  #include   "stdio.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
    struct     BaseParameter  
                  {  
                      TDateTime   Current_Time;  
                      unsigned   int   FirstChannel_No,LastChannel_No;  
                      int   Frequence;  
                      int   Gains;  
                  };  
  struct   ChannelParameter  
                  {  
                      unsigned   int   Channel_No;  
                      AnsiString   Signal_Name;  
                      AnsiString   Signal_Unit;  
                  };  
  struct   LscFileFormat  
                {  
                      BaseParameter   Base_Parameter;  
                      ChannelParameter   Chn_Para[3];  
                };  
                  LscFileFormat   lscrec;  
                  FILE   *fp;  
                  int   i;  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
                  :   TForm(Owner)  
  {  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
    float   data1[500],data2[500],data3[500];  
      if(OpenDialog1->Execute())  
  {fp=fopen(OpenDialog1->FileName.c_str(),"rb");  
  }  
    if   (!feof(fp))  
    {  
      fread(&lscrec,sizeof(lscrec),1,fp);  
      fread(data1,4,500,fp);  
                        fread(data2,4,500,fp);  
                        fread(data3,4,500,fp);  
                        }  
                        fclose(fp);  
                        for   (i=0;i<500;i++)  
                        {  
                              ListBox1->Items->Add(FloatToStr(data1[i]));  
                              ListBox2->Items->Add(FloatToStr(data2[i]));  
                                  ListBox3->Items->Add(FloatToStr(data3[i]));  
  }  
   
  }  
  我看了一下书,看不出是什莫原因,而且我运行时没错阿,fclose也使用了阿。请帮帮忙,看一下,我编写的代码有何错误,导致结束时报错。万分感谢。

NO.1   作者: bigwhiteshark

struct   ChannelParameter  
                  {  
                      unsigned   int   Channel_No;  
                      AnsiString   Signal_Name;     //它是个类,要释放的   它必须知道内容是什么  
                      AnsiString   Signal_Unit;    
                  };  
   
    fread(&lscrec,sizeof(lscrec),1,fp);//在这里你复制时给了个它不知道的类型  
   
   
  struct   ChannelParameter  
                  {  
                      unsigned   int   Channel_No;  
                      char   Signal_Name[256];//改为这样就没有问题了  
                      char   Signal_Unit[256];  
                  };


 ·tdatetimerpicker的date值的问题。    »显示摘要«
    摘要: tdatetimerpicker的date值在win2k下是正常的。可到了win98下后表示年的部分老是显示两位数,这样为查询造成很大不便,如何让其在98下也为四位数呢? 比如现在的是:"03-05-19" 而查询需要的格式是:"2003-05-19" ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE