VC++结构文件的读写操作

#define ACL_ACL_LENTH    sizeof(XACL)
//#define ACL_TIME_LENTH    sizeof(XACL_TIME)
#define ACL_IP_LENTH    sizeof(XACL_IP)
#define ACL_HEADER_LENTH   sizeof(XACL_HEADER)

struct XACL_IP
{
    DWORD   iStartIP;
 DWORD   iEndIP;
};
struct XACL
{
 
 char  sApplication[20];
BYTE  bRemoteNetType;
DWORD  ulTrustIPOffset;
 int   ulTrustIPCount;
 XACL_IP  mpAclTrustIP[2];  
} ;
struct XACL_HEADER 
{
 int  ulAclCount;
};
 struct _XACL_FILE
{
 XACL_HEADER  mAclHeader;
 
 XACL   mpAcl[10];
} ;

 

//对话框操作
void CQosfileDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 CFile   mAclFile;
 XACL_HEADER  mAclHeader;
    XACL   *mpAcl;
 XACL_IP         m_ip;
 CString   mAppPath;
 

 m_ip.iStartIP=1;
 m_ip.iEndIP=2;
    mAclHeader.ulAclCount=2;

 mpAcl=new XACL[2];
 mpAcl->mpAclTrustIP[0]=m_ip;
 (mpAcl+1)->mpAclTrustIP[1]=m_ip;

//打开写;
     mAclFile.Open( "F://VC//qosfile//Debugxacl.cfg",
      CFile::modeCreate |
      CFile::modeWrite |
      CFile::typeBinary |
      CFile::shareExclusive
      );

 mAclFile.Write(&mAclHeader,ACL_HEADER_LENTH);
 
mAclFile.WriteHuge(mpAcl,ACL_ACL_LENTH * mAclHeader.ulAclCount);
   mAclFile.Close();
 delete mpAcl;
 //打开读;

    mAclFile.Open( "F://VC//qosfile//Debugxacl.cfg",
      CFile::modeRead   |
      CFile::typeBinary  |
      CFile::shareDenyWrite
      );
     
 mAclFile.SeekToBegin();
 mAclFile.Read(&mAclHeader,ACL_HEADER_LENTH);
  mpAcl   = new XACL[mAclHeader.ulAclCount];
  mAclFile.ReadHuge(mpAcl,ACL_ACL_LENTH * mAclHeader.ulAclCount);
  
         CString  str;
   str.Format("%u",mAclHeader.ulAclCount);
   str.TrimLeft();
   CWnd *pWnd=GetDlgItem(IDC_EDIT3);
   pWnd->SetWindowText(str);
 // strcpy(m_edit1,str);
     ////   m_edit2=mpAcl->mpAclTrustIP.iStartIP;
 // strcpy(m_edit2,str);
 // m_edit1=2;
   XACL_IP *ip;
   ip=(mpAcl+1)->mpAclTrustIP+1;

  str.Format("%u",ip->iStartIP);
   str.TrimLeft();
   pWnd=GetDlgItem(IDC_EDIT4);
   pWnd->SetWindowText(str);
   mAclFile.Close();
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值