请问下面的函数应该怎样调用,小弟刚学不不久,请高手帮忙~~,谢谢
function LimitStringCast(const Value:String;
var LimitNum:integer;
const StartPos:integer=1):string;
var
iPos:Integer;
iLen:Integer;
iLimitNum:Integer;
tmpStr:String;
begin
iPos:=StartPos;
iLen:=Length(Value);
if iPos>iLen then
begin
Result:= '';
exit;
end;
if LimitNum>iLen-iPos+1 then LimitNum:=iLen-iPos+1;
iLimitNum:=LimitNum+1;
if iLimitNum>iLen-iPos+1 then iLimitNum:=LimitNum;
//取得最大长度子串
Result:=Copy(Value,iPos,LimitNum);
if iLimitNum<>LimitNum then
Begin
tmpStr:=Copy(Value,iPos,iLimitNum);
//取得最大长度+1,用意在于判断是否最后取的是汉字的前一半
//下面是使用转换成Unicode后的字串长度来做判断的
if Length(WideString(tmpStr))=Length(WideString(Result)) then
begin
//可能存在半个汉字
//最后一个是汉字的高字节,
//因为不能超最大长度,
//所以在这里宁可少取一个字符
if LimitNum>1 then Result:=Copy(Value,iPos,LimitNum-1);
end;
end;
end;
function LimitStringCast(const Value:String;
var LimitNum:integer;
const StartPos:integer=1):string;
var
iPos:Integer;
iLen:Integer;
iLimitNum:Integer;
tmpStr:String;
begin
iPos:=StartPos;
iLen:=Length(Value);
if iPos>iLen then
begin
Result:= '';
exit;
end;
if LimitNum>iLen-iPos+1 then LimitNum:=iLen-iPos+1;
iLimitNum:=LimitNum+1;
if iLimitNum>iLen-iPos+1 then iLimitNum:=LimitNum;
//取得最大长度子串
Result:=Copy(Value,iPos,LimitNum);
if iLimitNum<>LimitNum then
Begin
tmpStr:=Copy(Value,iPos,iLimitNum);
//取得最大长度+1,用意在于判断是否最后取的是汉字的前一半
//下面是使用转换成Unicode后的字串长度来做判断的
if Length(WideString(tmpStr))=Length(WideString(Result)) then
begin
//可能存在半个汉字
//最后一个是汉字的高字节,
//因为不能超最大长度,
//所以在这里宁可少取一个字符
if LimitNum>1 then Result:=Copy(Value,iPos,LimitNum-1);
end;
end;
end;
解决方案 »
- 怎么样快修改dbgrid中的一列数据。(修改为同一个值)
- (程序员必看)如何做一名好的开发人员 !!!!!!!!!!!!!!!!!
- 怎样把一个class封装ocx?(为表诚意100分送上先)
- 急啊!!!!!求助!!!!
- delphi中加入gif动画图片(在线等待)
- 郁闷:ado连Access数据库的问题
- 如何在线程中,实现对主窗体中数组的调用、修改(很菜的问题)
- 谁能给我一张ASCII字符表,送50分!
- 请教:怎样重新设置Listview的vsReport样式下的表格线(GridLine)的高度?
- 如何读取IE的历史记录?
- 怎样取XML文件中的值?
- 将word嵌程序后,在win2000中设置字体时报:“未指定的错误”
LimitNum:integer;ShowMessage(LimitStringCast('abc, LimitNum))
showmessage(limitStringCase('asdsdfsdf'),3)
var LimitNum:integer;
const StartPos:integer=1):string;
第一个参数是一个传值参数,只要把传进一个字符串就ok,第二个参数是传址参数,必须在本地声明一个integer类型的变量传进去,第三个参数是可选择的参数,你可以传,也可以不传,如果不传,参数值
在该函数中会默认为1
Delphityro(不吃腥的猫)
不好意思 ,我在算分的时候没看到,所以没给你加分,请谅解,下次一定给我多一点......