首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Builder怎么实现Ctrl+r的功能

2012-03-15 
Builder如何实现Ctrl+r的功能Builder如何实现Ctrl+r的功能,纯代码实现,要能支持unicode编码的。。。。我自己写

Builder如何实现Ctrl+r的功能
Builder如何实现Ctrl+r的功能,纯代码实现,要能支持unicode编码的。。。。

我自己写的不支持unicode编码。。。很纠结。。。

给个思路也行,前提是给的要对。。。当然有代码那就更加的好了

[解决办法]
数据量太大,可以优化算法.你可以考虑下面的做法:

C/C++ code
void MyDeleteWString(TStream *Dest, wchar_t *Source , int wLength,wchar_t delChar = L'"'){  wchar_t *PosCopy = Source ;  wchar_t *p = PosCopy ;  for(int i = 0 ; i < wLength ; ++i, ++p)  {    if(*p == delChar)    {      Dest->Write(PosCopy,p-PosCopy) ;      PosCopy = p+1 ;    }  }  if((PosCopy - Source) < wLength)    Dest->Write(PosCopy,wLength-(PosCopy-Source)) ;}//---------------------------------------void MyDeleteWString(TStream *Dest,TStream *Source ,wchar_t delChar = L'"'){  wchar_t buff[1024*1024] ;//  const int buffsize = sizeof(buff);  int size ;  do  {    size = Source->Read(buff,buffsize);        if(size > 0)       MyDeleteWString(Dest,buff,size,delChar);  }while (size == buffsize);} 

热点排行