easyfunction GetStr(i: integer): string; var tip:TStringList; begin result:=''; if i<0 then exit; tip:=TStringList.Create ; try tip.Delimiter :=','; tip.DelimitedText :='abde, dwss,,addf,eft,gggds'; if i>tip.Count -1 then exit; result:=tip[i]; finally tip.Free; end; end;//另:那个字符串应该也做一个参数比较好
楼上正解,用TStringList 比较方面 如果楼主非要自己写判断程序取的话 var i,j:integer; DataStr,Resultstr :string;begin DataStr :='abde, dwss,addf,eft,gggds'; j:=3;//(要去的第n个“,”开始的数据,可以用函数传过来) for i:=1 to j do begin DataStr := copy(DataStr,pos(',',DataStr)+1,length(DataStr)-pos(',',DataStr)); i:=i+1; end; Resultstr :=copy(DataStr,1,pos(',',DataStr)-1); //这就是你要取的字符串 end;
function GetStr(AString : String;ToIndex : Integer) : String; var AText : String; Index : Integer; begin AText := AString; Result := ''; if AText = '' then Exit; if RightStr(AText,1) <> ',' then AText := AText + ','; for Index := 0 to ToIndex do begin Result := MidBStr(AText,1,Pos(',',AText)-1); AText := MidBStr(AText,Pos(',',AText)+1,Length(AText)); end; end;调用: GetStr('abde, dwss,,addf,eft,gggds' ,4)
var
tip:TStringList;
begin
result:='';
if i<0 then exit;
tip:=TStringList.Create ;
try
tip.Delimiter :=',';
tip.DelimitedText :='abde, dwss,,addf,eft,gggds';
if i>tip.Count -1 then exit;
result:=tip[i];
finally
tip.Free;
end;
end;//另:那个字符串应该也做一个参数比较好
如果楼主非要自己写判断程序取的话
var
i,j:integer;
DataStr,Resultstr :string;begin
DataStr :='abde, dwss,addf,eft,gggds';
j:=3;//(要去的第n个“,”开始的数据,可以用函数传过来)
for i:=1 to j do
begin
DataStr := copy(DataStr,pos(',',DataStr)+1,length(DataStr)-pos(',',DataStr));
i:=i+1;
end;
Resultstr :=copy(DataStr,1,pos(',',DataStr)-1); //这就是你要取的字符串
end;
var
AText : String;
Index : Integer;
begin
AText := AString;
Result := ''; if AText = '' then Exit;
if RightStr(AText,1) <> ',' then AText := AText + ',';
for Index := 0 to ToIndex do
begin
Result := MidBStr(AText,1,Pos(',',AText)-1);
AText := MidBStr(AText,Pos(',',AText)+1,Length(AText));
end;
end;调用:
GetStr('abde, dwss,,addf,eft,gggds' ,4)