给你一个自己写的单元文件
{
单元名称:工具单元 Ver 1.0
功能:公用单元
更新日期:2002.6.19
作者:95927
}
unit ToolsUnit;
interface
function StrLeft(const mStr: String; mDelimiter: String): String;
function ListCount(mList: String; mDelimiter: String =','): Integer;
function ListValue(mList: String; mIndex: Integer; mDelimiter: String =','): String;
implementation
//============================ StrLeft =====================================//
function StrLeft(const mStr: string; mDelimiter: string): string;
{ 返回左分隔字符串 }
begin
Result := Copy(mStr, 1, Pos(mDelimiter, mStr) - 1);
end;
//=========================== ListCount =====================================//
function ListCount(mList: string; mDelimiter: string ): Integer;
{ 返回列表数 }
var
I, L: Integer;
mListC:String;
begin
Result := 0;
if mList = '' then Exit;
mListC := mList;
L := Length(mList);
I := Pos(mDelimiter , mList);
while I > 0 do begin
mList := Copy(mList , I + Length(mDelimiter), L);
I := Pos(mDelimiter , mList);
Inc(Result);
end;
Inc(Result);
if PChar(mListC)[0] = mDelimiter then
Result := Result - 1;
if PChar(mListc)[Length(mListc)-1] = mDelimiter then
Result := Result - 1;
end;
//============================= ListValue ==================================//
function ListValue(mList: string; mIndex: Integer; mDelimiter: string = ','): string;
{ 返回列表指定位置的元素 }
var
I, L, K: Integer;
begin
if Pchar(mList)[Length(mList)-1] <> mDelimiter then
mList:=mList + mDelimiter;
L := Length(mList);
I := Pos(mDelimiter, mList);
K := 0;
Result := '';
while (I > 0) and (K <> mIndex) do begin
mList := Copy(mList, I + Length(mDelimiter), L);
I := Pos(mDelimiter, mList);
Inc(K);
end;
if K = mIndex then
Result := StrLeft(mList + mDelimiter, mDelimiter);
end;
end.
用的时后用ListCount取出有多少个分割块,然后用For循环就可以了