比如:abc,yy,我们,tot
一个字符串用逗号分开各项,但有几项是不固定的
要求把各项取出分别放到字符串里,比如上面:
str1:='abc';
str2:='yy';
str3:='我们';
str4:='tot';
当然str应该用动态数组,因为不知有几项,怎么写?
一个字符串用逗号分开各项,但有几项是不固定的
要求把各项取出分别放到字符串里,比如上面:
str1:='abc';
str2:='yy';
str3:='我们';
str4:='tot';
当然str应该用动态数组,因为不知有几项,怎么写?
b1:='abc,yy,我们,tot';
separateTerms(b1,',',Terms1);
terms1.count=4;
c1:=terms1.string[0];//abc
c2:=terms1.string[1];//yy
c3:=terms1.string[2];//我们
c4:=terms1.string[3];//tot
{
var aSplit: TSplitArray;
begin
aSplit:=split('a,b,c,d,e,f',',');
}
function Split(const Source, Delimiter: String):TSplitArray;
var
iCount: Integer;
iPos: Integer;
iLength: Integer;
sTemp: String;
aSplit: TSplitArray;
begin
sTemp := Source;
iCount := 0;
iLength := Length(Delimiter) - 1;
repeat
iPos := Pos(Delimiter, sTemp);
if iPos = 0 then
break
else begin
Inc(iCount);
SetLength(aSplit, iCount);
aSplit[iCount - 1] := Copy(sTemp, 1, iPos - 1);
Delete(sTemp, 1, iPos + iLength);
end;
until False;
if Length(sTemp) > 0 then begin
Inc(iCount);
SetLength(aSplit, iCount);
aSplit[iCount - 1] := sTemp;
end;
Result := aSplit;
end;
注意TStringList有Delimiter和DelimitedText属性
a[I]:=copy(string,1,pos(',',string));
string:=a[I];
inc(I);
until not pos(',',sting);