Builder如何实现Ctrl+r的功能
Builder如何实现Ctrl+r的功能,纯代码实现,要能支持unicode编码的。。。。
我自己写的不支持unicode编码。。。很纠结。。。
给个思路也行,前提是给的要对。。。当然有代码那就更加的好了
[解决办法]
数据量太大,可以优化算法.你可以考虑下面的做法:
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);}