Delphi动态比较2个字符串~~(100)

  • 主题发起人 主题发起人 gigijava
  • 开始时间 开始时间
G

gigijava

Unregistered / Unconfirmed
GUEST, unregistred user!
如下: 有Edit1和Edit2两个控件,其中Edit1.text输入的是不确定的字符*『*表示任意字符』(任意字符*的个数和出现的位置不确定,Edit1的长度也不确定),Edit2是手工输入的,,比较Edit12输入的是否Edit1相等 例: Edit1输入的可能是:**A****B***C*(其中*表示任意字符,Edit1的长度不确定,*出现的位置也不确定,*出现的个数也不确定) 当Edit2输入的是: 12A5690B012CM LKAGG12BTY7C5 ............. 即Edit2中含有Edit1中的A,B,C三个字符且位置也需与Edit1出现的A,B,C位置相同 才认为Edit2与Edit1相等请达人帮忙看下。。。。这个Delphi代码搞怎么写
 
用Pos就可以了,难度不大。
 
教你一个最简单的方法:把两字符串中不用比较的地方都设置为同一个字符,再比较就OK了例如:比较 1111A2V3C同1111N5M1A你把他搞成 1111_2_3_同1111_5_1_ 比较就完了
 
function StrCheck(const AStr1:string;AStr2:string):Boolean;var i,iLen,iLen2:Integer;begin result:=false; iLen:=length(AStr1); iLen2:=length(AStr2); if iLen>iLen2 then begin i:=iLen-iLen2; while i>0 do begin AStr2:=AStr2+'*'; dec(i); end; end; for i:=1 to iLen do if AStr1<>'*' then if AStr1<>AStr2 then exit; result:=True;end;procedure TForm1.Button1Click(Sender: TObject);begin //edit1.text:='**A****B***C*';edit2.text:='12A5690B012CM'; if StrCheck(edit1.Text,edit2.Text) then showmessage('OK') else showmessage('No');end;
 
正则表达式
 
3楼的哥们【ID为:wangdonghai】牛X``~~是我想要得到的结果&&和需要实现的功能~~学习ing~~Delphi7下编译已通过~~//
 
[green]谢谢大富翁上路过该贴的程序员~~~[/green]
 
后退
顶部