导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

文件中文本内容的读取问题

philipsslg 2004-04-10 12:57:21
怎样用VC读取文件test.txt中,第一对 { }之间的文字,假设test.txt文件中在{ }之间存在中文,是不是需要用到Unicode编码,ANSI字符集是不是不能显示中文?
...全文
17 点赞 收藏 9
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjinbao 2004-09-03
gz
回复
philipsslg 2004-04-12
to
hahu(网痞 -- 勿近)
你这个buf有什么用,好像没用过
回复
philipsslg 2004-04-12
如果括在一对中文字内又怎么办,如取得在第一个"表格"和第二个"表格"之间的内容怎么取得?
回复
hahu 2004-04-10
好像忘记
file.Close()了
回复
hahu 2004-04-10
呵呵,我练习练习,
各位高手不要找我讨论授之鱼,授之渔的问题啊
//怎么CFile里面没看到有EndOfFile之类的操作,奇怪
void CDeleteByDateDlg::OnReadstr()
{
int bufLength = 10;
char *buf=new char[bufLength];
try
{
CFile file("tmp.txt",CFile::modeRead);
int nLength = file.GetLength();
int nCnt = nLength/bufLength+1;
bool bBegin = false;
int nPos = -1;
CString strRes="",strTmp;;
for(int i = 0;i<nCnt;i++)
{
file.Read(strTmp.GetBuffer(bufLength),bufLength);
strTmp.ReleaseBuffer();
if(!bBegin&&(nPos = strTmp.FindOneOf("{"))>=0)
{
bBegin = true;
strRes += strTmp.Mid(nPos+1);
}
else if(bBegin&&(nPos=strTmp.FindOneOf("}"))>=0)
{
bBegin = false;
strRes += strTmp.Left(nPos);
}
else if(bBegin)
strRes += strTmp;
}
m_strResult = strRes;
UpdateData(false);
}
catch(CException *pe)
{
CString strError;
pe->GetErrorMessage(strError.GetBuffer(MAX_PATH),MAX_PATH);
strError.ReleaseBuffer();
::AfxMessageBox(strError);
pe->Delete();
}

if(buf!=NULL)
delete []buf;
}
回复
CHKK 2004-04-10
没关系的,只要你在中文平台下开发,这些问题都是不用考虑的
回复
szj00 2004-04-10
你先打开文件,然后用GETLINE将一行读入,再用指针挑把
回复
zifeng911 2004-04-10
可以直接读取
回复
fzd999 2004-04-10
不是,你可以直接读取
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……