MFC 读取文件函数

MFC 读取文件函数,第1张

文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法:

//对文件进行读 *** 作

char sRead[2];

CFile mFile(_T("usertxt"),CFile::modeRead);

if(mFileGetLength()<2)

return;

mFileRead(sRead,2);

mFileClose();

//对文件进行写 *** 作

CFile mFile(_T("usertxt "), CFile::modeWrite|CFile::modeCreate);

mFileWrite(sRead,2);

mFileFlush();

mFileClose();

虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。它的使用方法见下例。

//对文件进行写 *** 作

CString strTemp;

CFile mFile;

mFileOpen("d:\\dd\\tryTRY",CFile::modeCreate|CFile::modeNoTruncate|CFile::modeWrite);

CArchive ar(&mFile,CArchive::store);

ar<<arClose();

mFileClose();

//对文件进行读 *** 作

CFile mFile;

if(mFileOpen("d:\\dd\\tryTRY",CFile::modeRead)==0)

return;

CArchive ar(&mFile,CArchive::load);

 ar>>strTemp;

arClose();

mFileClose();

CArchive的 << 和>> *** 作符用于简单数据类型的读写,对于CObject派生类的对象的存取要使用ReadObject()和WriteObject()。使用CArchive的ReadClass()和WriteClass()还可以进行类的读写,如:

//存储CAboutDlg类

arWriteClass(RUNTIME_CLASS(CAboutDlg));

//读取CAboutDlg类

CRuntimeClass mRunClass=arReadClass();

//使用CAboutDlg类

CObject pObject=mRunClass->CreateObject();

((CDialog )pObject)->DoModal();

如果你要进行的文件 *** 作只是简单的读写整行的字符串,我建议你使用CStdioFile,用它来进行此类 *** 作非常方便,如下例。

CStdioFile mFile;

CFileException mExcept;

mFileOpen( "d:\\temp\\aabat", CFile::modeWrite, &mExcept);

CString string="I am a string";

mFileWriteString(string);

mFileClose();

追加到原有txt文件尾

mFileOpen(temptxt,CFile::modeCreate|CFile::modeWrite|CFile::modeNoTruncate);

if(mFile==NULL)

return false;

mFileSeekToEnd();

mFileWriteString(s);

fileClose();

添加一个打开文件对话框,用CFileDialog类;用CFile类,在构造时指定读取方式(

CFile::typeBinary Sets binary mode (used in derived classes only)

),不过得从CFile派生一个类

FILE fHexFile;

fHexFile = fopen(cstrFilePath, "rb");

DWORD result = fread (&b,sizeof(byte ),1,fHexFile);

遍历当前文件夹查找jpg的文件,jpg表示类型为jpg类型的文件,每找到一个把变量计数器给加1啊,给你个遍历文件夹,找jpg类型文件,具体你自己的使用还要小修改,

void CXXXDlg::SearchFiles(CString strMusicFolder)

{

    CFileFind ff;

    

    strMusicFolder += _T("\\");

    

    strMusicFolder += _T("");

    BOOL res = ffFindFile(strMusicFolder);

    while (res)

    {

        res = ffFindNextFile();

        if (!ffIsDirectory() && !ffIsDots())

        {

            afxMessageBox(ffGetFilePath());

        }

    }

    ffClose();

}

txt文件里面寸的是字符,因此读出后需要转换为double型数据后才能保存

PtrArray是存储地址的,需要存储每个double型的数据地址时,保存数据的地址保存进去就是了。也许你会问,那在哪里获取数据地址。回答是,每次读进数据的时候先给每一个数据在内存开辟内存,一般用new分配,保存数据到这个内存后,把

new得来的地址保存到PtrArray里面就可以了。

先用Find函数打到位置

void GetStrs(CString str,const char ch/分隔符/,CStringArray& strs)

{

strReplace(" "," ");

strsRemoveAll();

int iPos = strFind(ch);

while(-1 != iPos )

{

CString s = strLeft(iPos);

sTrimLeft();

sTrimRight();

if( !sIsEmpty())

strsAdd(s);

str = strMid(iPos+1);

iPos = strFind(ch);

}

strTrimLeft();

strTrimRight();

if( !strIsEmpty())

strsAdd(str);

}

void CDlg20130527Dlg::OnButton4()

{

CStringArray strs;

GetStrs("1 123 10 BYYLL 23 150",' ',strs);

参考一下

以上就是关于MFC 读取文件函数全部的内容,包括:MFC 读取文件函数、MFC中二进制方式读取文件的方法、MFC 获取文件的BYTE[]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9700280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存