当前位置:主页>销售管理软件> 列表

字符串拆分,求算法 找用友企业管理软件

记账软件版1楼: 我在解决关键字高亮显示的问题中使用了JvRichEdit,他有1个函数AddFormatText(字符串,字体).我的问题是:
Str:=''北京到石家庄晚8:00有火车,北京到哈尔滨早8:00有火车,到唐山1点有火车,石家庄到唐山2:00有火车''
我的关键字是:
北京,石家庄,哈尔滨,唐山
我想把Str中的关键字以红色显示出来.
我的代码是:
procedure TForm1.Button3Click(Sender: TObject);
var
i,ipos,iKey:integer;
Key,Str,sTmp:string;
OrdFont,HiFont:TFont;
begin
Str:= ''北京到石家庄晚8:00有火车,北京到哈尔滨早8:00有火车,到唐山1点有火车,石家庄到唐山2:00有火车'';
sTmp:=Str;
OrdFont:=TFont.Create;
HiFont:=TFont.Create;
OrdFont.Color:=clBlack;
OrdFont.Charset:= GB2312_CHARSET;
OrdFont.Name:=''宋体'';
OrdFont.Size:=11;
HiFont.Color:=clRed;
HiFont.Charset:=GB2312_CHARSET;
HiFont.Name:=''宋体'';
HiFont.Size:=11;

Key:=KeyList.Items.String[0];
for iKey:=0 to KeyList.Count-1 do
begin
Key:=KeyList.Items.Strings[iKey];
while pos(Key,Trim(sTmp))>0 do


begin
ipos:=pos(Key,sTmp);
Str:=Copy(sTmp,0,ipos-1);
MyFav1.AddFormatText(str,OrdFont);
MyFav1.AddFormatText(Key,HiFont);
sTmp:=Copy(sTmp,pos(Key,sTmp)+length(Key),1000);
end;
end;
MyFav1.AddFormatText(sTmp+#13#10,OrdFont);
OrdFont.Free;
HiFont.Free;
end;

其中MyFav1是TJVRichedit
MyList是TListBox用于存储关键字.

我这样做,只能实现最后关键字变红.
请教有没有其它方法实现.

2楼: 这样的匹配你还是用TRegExpr这个正则表达式类吧.
www.2ccc.com上有,还有demo 如用友企业管理软件

3楼: 感觉问题简单,可就是搞不定。

4楼: 分两步
1、先检查取出的字符串是否符合要求
2、再检查改变颜色的语句。改用循环来改变颜色呢?

5楼: 自己搞定

6楼: 能不能劳驾各位到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2025057
签个到?
谢谢.