我在做一个文本转换程序,我现在是将转换过程放在后台,我在转换函数中调用全局
函数时出了问题,比如调用这样的函数:
UINT GenerateHTML(CString &lparam)
{
for(int i=0;i<lparam.GetLength();i+=2){
if(lparam.Mid(i,2)=="±")
lparam.Delete(i,2);
}
lparam+=" ";
}
这样这个函数就无法正常工作,for语句中在文本的一万多行才找倒"±",而去掉
lparam+=" ";就可以正常工作了,请教这是怎么回事?
函数时出了问题,比如调用这样的函数:
UINT GenerateHTML(CString &lparam)
{
for(int i=0;i<lparam.GetLength();i+=2){
if(lparam.Mid(i,2)=="±")
lparam.Delete(i,2);
}
lparam+=" ";
}
这样这个函数就无法正常工作,for语句中在文本的一万多行才找倒"±",而去掉
lparam+=" ";就可以正常工作了,请教这是怎么回事?
解决方案 »
- 有没有谁知道静态库lib文件怎么打开
- tab控件显示webbrowser问题,绝对给分
- 窗口为什么不显示
- 使对话框中的控件大小随父窗体大小变化而变化,程序没有错误,可以为什么对话框变大了,但是控件还有原来大小,附程序,谢谢
- 怪事!为何我的VC一编译就黑屏到了DOS状态,编译完后就恢复。无论编译哪个工程均是如此。
- 请问vc6调试进入某个断点时,怎样切换到程序界面上,以便观察GDI绘制效果。谢谢!
- 如何在文件打开的时候重命名呢,好烦,望高手帮忙!!!!!!!!!!!!!!!!!!!!!
- !!如何改变MessageBox对话框按钮上显示的文字?
- 问个局域网的通讯的问题
- 有关数据加密的问题
- 关于CTreeCtrl类的HitTest函数的问题,我确实点在ITEM上,得到的返回值总是NULL?
- 两个问题,请各位大虾进来看看
L"xxxxx"
我也不知道对不对。
改成
if(lparam.Mid(i,2)==L"±")
因为楼主用多字节编码,"±"并不能保证每次都落在偶数边界上,所以不能用i+=2如果楼主的lparam每次都只是一行??那“for语句中在文本的一万多行才找倒"±",”又怎能在一万多行才找到??
读了一万多行,才找到。
这个现在我也糊涂当时是怎么写的了,我现在是遇到第一个字节小于零的就
加2,否则加1,只加1的话,Mid可能会越界,现在把它放在主函数里是行了,
但不知有没有问题,以后看着再说吧,谢谢。