H helloymz Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-09 #1 我从网上拷贝一段文字下来放在ftext:string里面 现在想取得ftext里面前几个字符作为标题,要求标题只含汉字和字母 要怎么实现啊...
来 来如风 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-09 #2 那你就从头开始判断啊,从最先满足条件的地方开始截取, 判断是字母还是汉字都不难啊,我以前的帖子里面就有涉及到判断字符是汉字还是字母的, 你找找看吧,
I Imfish Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-09 #4 下面是汉字的(字母一样的) function IsHz(Source: string): Bool; begin result := ((Word(Source[1]) shl 8 + Word(Source[2])) >= $B0A1) and ((Word(Source[1]) shl 8 + Word(Source[2])) <= $D7F9) end; 然后一个一个加起来,加多少个就由你控制了:)
下面是汉字的(字母一样的) function IsHz(Source: string): Bool; begin result := ((Word(Source[1]) shl 8 + Word(Source[2])) >= $B0A1) and ((Word(Source[1]) shl 8 + Word(Source[2])) <= $D7F9) end; 然后一个一个加起来,加多少个就由你控制了:)
来 来如风 Unregistered / Unconfirmed GUEST, unregistred user! 2003-03-09 #5 例如, s,d:string; i,j;interger; begin i:=ord(s[1]);//s[1],可以用一个变量来代替,这样才可以在s中循环象下搜索的 if i>160 then//好象是160吧,你试试,这时是汉字,需要连续的 begin // j:=ord(s[2]); d:=chr(i)+s[2];//chr(j); //这样就是对于汉字的处理方法,你试试看 end
例如, s,d:string; i,j;interger; begin i:=ord(s[1]);//s[1],可以用一个变量来代替,这样才可以在s中循环象下搜索的 if i>160 then//好象是160吧,你试试,这时是汉字,需要连续的 begin // j:=ord(s[2]); d:=chr(i)+s[2];//chr(j); //这样就是对于汉字的处理方法,你试试看 end