读写UNICODE代码文件,删除注释符

一、C语言关于读取unicode文件的注意事项
 关于unicode的基本知识,请参考其他知识。
 c语言中的FILE读写unicode的文件的时候,一定要记住,必须以二进制的方式读取,如果以文本的方式,会有意想不到的错误。
 举例:
 字符“a我b”的unicode编码是6100 1161 6200.如果以文本的方式读取_fgetts得到的结果就是6100 0000 1100 6100 6200 0000.也就是他在每个byte后面
 加上一个00。其他方式也是一样。

二、循环遍历文件夹下的文件函数

	void RecurseFile(CString path)
	{
		WIN32_FIND_DATA fileInfo;
		HANDLE Hfile;
		BOOL bRes = TRUE;
		Hfile = FindFirstFile(path, &fileInfo);
		if (Hfile == INVALID_HANDLE_VALUE)
			return ;
		while (Hfile != INVALID_HANDLE_VALUE && bRes)
		{
			CString strFilename = fileInfo.cFileName;
			CString strSuff = strFilename.Right(2);
			if (fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
			{
				if (strSuff.CompareNoCase(_T(".")) && strSuff.CompareNoCase(_T("..")))
				{
					CString str = path.Left(path.GetLength() - 3);
					path = str + strFilename + _T("\\*.*");
					RecurseFile(path);
					path = str + _T("*.*");
				}
			}
			else
			{
				CString str = path.Left(path.GetLength() - 3);
				str += strFilename;
				//do someting with this file;
 			}

			bRes = FindNextFile(Hfile, &fileInfo);
		}
		FindClose(Hfile);
	}


 
 调用该函数的时候,比如给出的path是 "D:\\test",那么后面还得加上"\\*.*",也就是"D:\\text\\*.*" .

三、批量删除代码中的/**/注释
 首先需要明白,在c类似的代码中,/**/的注释原理是,在一个/*后面,发现的第一个*/便和其配对,不管中间是什么内容。
 所以该方法很明确,一行一行的读取代码内容,如果发现/*,那么在本行找到*/,从*/的下一个位置继续确认,知道本行的结束,如果多出了/*,可以肯定下面某一行的
 某个位置第一次出现的*/便和其配对。

四、关于文件中的0d0a.
 在windows环境下,用户输入回车符0d后,系统会默认在前面加一个tab符,也就是0a。而用类似于Cstring的成员函数GetString这样的函数读取一行,在其倒数第二个字符绝对
 是0a,而不是完完全全的你所看到的一行字符。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值