UNICODE编码格式读取文件并显示在LIST


#if 1
	static  TCHAR FileName[] = L"//Config.txt";
	// TODO: 在此处添加实现代码.
	TCHAR* path = new TCHAR[MAX_PATH];
	ZeroMemory(path, MAX_PATH);
	GetCurrentDirectory(MAX_PATH, path);

	UINT strlength = wcslen(path);

	wcscpy(path + strlength, FileName); //pszFileName

	//AfxMessageBox(path);  //test?

	setlocale(LC_CTYPE, "chs");   //读取文件时按照 Unicode 方式读取   加头文件  <locale.h>

	CString str1;

	CStdioFile myFile;
	CFileException fileException;
	//                               typeBinary
	if (myFile.Open(path, CFile::typeText | CFile::modeRead | CFile::modeNoTruncate | CFile::modeCreate), &fileException)
	{
		//----------------------------------------------------------------------------------
		myFile.SeekToBegin();
		char cstr[128];
		int line = 0;
		while (myFile.ReadString(str1))
		{
			m_wndList.SetItemText(line, 4, str1); //
			line++;
		}

		myFile.Close();
	}
	else
	{
		TRACE("Can't open file %s,error=%u/n", FileName, fileException.m_cause);
	}

#else
	static  TCHAR FileName[] = L"Config.txt";
	// TODO: 在此处添加实现代码.

	CFile file(FileName, CFile::modeRead);
	char* pBuf;
	char LingBuff[128];
	DWORD dwFileLen;
	dwFileLen = file.GetLength();
	pBuf = new char[dwFileLen];          //缓存整个文件
	file.Read(pBuf, dwFileLen);

	UINT nLeng = 0;
	UINT nLine = 0;
	int line = 0;
	while (nLeng < dwFileLen)
	{
		LingBuff[nLine] = pBuf[nLeng];
		if (pBuf[nLeng] == '\n')         //换行则切断
		{
			LingBuff[nLine + 1] = 0x00;  //去掉后面的字符
			nLine = 0;
			CString str3(LingBuff);      //转换成CString
			m_wndList.SetItemText(line, 4, str3);
			line++;
		}
		else
		{
			nLine++;
		}

		nLeng++;
	
	}

	
	pBuf = 0;
	file.Close();
	//MessageBox(pBuf);
	delete pBuf;
#endif

提供两种方法,第一种比较简单。 第二种根据自己需求定长度。 测试都是可以的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值