在程序里面我用了RichEdit来做文本编辑,使用了FindText做文本内容的查找,但是出现一个很奇怪的问题,例如
我用竖线‘|’来做分隔标记
MSH|^~\&||||||20080118213440||ACK|||V2.5
SFT|||第一短(MSH段)查找的时候可以正确判断出两个竖线的范围并做高亮显示,即使两竖线之间没有内容,但是第二段(SFT)及以后的段落就很奇怪,如果两竖线之间内容为空(||)就不行,一定要在两个竖线之间插入2个以上字符才可以正确范围我做了调试跟踪,却又发现查找过程正常,能够正确找到开始的'|'跟结束的'|'的位置,但就是高亮的时候出错代码如下:
RichEdit1.SelStart := RichEdit1.FindText(separator, before_length + StartPo + 1,Length(RichEdit1.Text),[])
RichEdit1.SelLength := EndPo - StartPo + 1;
RichEdit1.SelAttributes.color := clRed;
跟踪的时候还发现一个怪问题,就是RE.SelStart出来的值永远都是比before_length + StartPo + 1的值多出2请问哪位高手能够帮我指点一下呢,感激不尽....
另想问能够在做RichEdit1.FindText的时候限定查找内容为RE的某一行呢, 我试了RichEdit1.Lines[i].Text不成功