在TXT中进行文件读写

一般来讲往文件中读写数据都是按字节数来计算的,但是如果一个txt文件的各行长短不一,但需要以行为单位进行读写,该如何实现哪?
累类CStdioFile提供了对文件进行流式的操作功能。其中函数void CStdioFile::WriteString( LPCTSTR lpsz )写入一个字符串,需要给字符串lpsz的末尾加上换行标志”/r/n”;函数bool CStdioFile::ReadString(CString &rString )从文件中读取一行,如果文件未读完返回true,否则返回false。
相关代码如下:

void CRdWrtByLineDlg::OnSave()
{
UpdateData(TRUE);

//创建文件
CStdioFile file;
file.Open("ts.txt",CFile::modeCreate|CFile::modeWrite);

//获得文本的行数
CRichEditCtrl* pEdit = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1);
int nCount = pEdit->GetLineCount();

char szLine[200];
for( int i=0;i {
//第i行的长度
int nLenth = pEdit->LineLength( pEdit->LineIndex( i ) );

//获得第i行的字符串
pEdit->GetLine( i,szLine,nLenth );
szLine[nLenth] = 0;

//将第i行写入文件
CString str;
str.Format(”%s/r/n”,szLine);
file.Seek(0,CFile::end);
file.WriteString( str );
}

file.Close();
}

void CRdWrtByLineDlg::OnRead()
{
CString strText = “”;
CString szLine = “”;

//打开文件
CStdioFile file;
file.Open(”ts.txt”,CFile::modeRead);

//逐行读取字符串
while( file.ReadString( szLine ) )
{
strText += szLine;
}

//显示字符串
CRichEditCtrl* pEdit = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1);
pEdit->SetWindowText( strText );

file.Close();
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值