字体
第(2/5)页
关灯
   存书签 书架管理 返回目录
然后在对话框的列表框中添加人名。

    下面是PersonData 示例写文件的语句(在CPersonDataDlg::UpdateFile()函数中):

    PersonInfo pi; //创建个人信息变量

    //从对话框的空间变量中获得个人信息

    strcpy(pi.szNcom,m_szNcom);

    if (m_szSex == "男" )

    pi.nSex = 0;

    else

    pi.nSex = 1;

    strcpy(pi.szBirth,m_szBirth);

    strcpy(pi.szTitle,m_szTitle);

    strcpy(pi.szOffice,m_szOffice);

    strcpy(pi.szOfficePhone,m_szOfficePhone);

    strcpy(pi.szHcom,m_szHcom);

    strcpy(pi.szHcomPhone,m_szHcomPhone);

    strcpy(pi.szMobilePhone,m_szMobilePhone);

    strcpy(pi.szEMail,m_szEMail);

    //写入个人信息

    m_File.Write(&pi,sizeof(PersonInfo));

    注意CFile::Read()和CFile::Write()都不提供缓冲机制,所有的数据都是立即读取或者立

    即写入的,这与CArchive 类不同,CArchive 类提供写缓冲。

    同时CFile::Write()还可能由于写入失败而抛出CFileException 异常,例如磁盘已满或者

    磁盘写保护等,同样需要TRY/CATCH 结构对这些异常进行捕获。

    对于写入cāo作,CFile 还提供了CFile::Flush()用于将任何留在文件缓冲区中的数据强制写

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·192·

    入磁盘文件,原型为:

    virtual void Flush( );

    注意CFile::Flush()并不能保证强制将留在CArchive 缓冲区的数据写入文件,必须先使用

    CArchive::Flush()函数。

    8.2.3 定位cāo作

    CFile 可以使程序随机读写文件,这一随机xìng就是通过定位cāo作完成的。定位cāo作用于定

    位CFile 的读写指针,使得程序可以读写任意位置的数据,而不是在顺序读写中只能依照从

    前往后的顺序进行读写。

    CFile 为定位cāo作提供了下列成员函数。

    1.CFile::GetLength()函数

    CFile::GetLength()函数用于获得打开文件的长度,即文件的字节数,原型为:

    virtual DWORD GetLength( ) const;

    函数返回值为文件的长度。

    下面的代码用于获得test.dat 文件长度:

    CFile file;

    fi
上一页 目录 下一页