设有一记录,该记录各字段以逗号分格
aaaa,bbbb,cccc,dddd,eeee
1111,23432443232,4324232,3232323,3434343
各字段长度不一样,甚到有的字段很长,而这样的字段可能不需要提取
需要得到这样的变量:
A=aaaa
B=bbbb
c=dddd
....
在C里有一个函数strtok可以依次读取其中各字段
各位高手:delphi里有这样的函数吗,一定要定义该文件为记录型文件吗
aaaa,bbbb,cccc,dddd,eeee
1111,23432443232,4324232,3232323,3434343
各字段长度不一样,甚到有的字段很长,而这样的字段可能不需要提取
需要得到这样的变量:
A=aaaa
B=bbbb
c=dddd
....
在C里有一个函数strtok可以依次读取其中各字段
各位高手:delphi里有这样的函数吗,一定要定义该文件为记录型文件吗
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.CommaText := 'aaaa,bbbb,cccc,dddd,eeee';
//这样就以逗号为分隔存到字符串列表中了,这时sl[0] = 'aaaa',sl[1] = 'bbbb',...
finally
sl.Free;
end;
end;
var
I: Integer;
begin
I := Pos;
while (I <= Length(Fields)) and (Fields[I] <> ',') do Inc(I);
Result := Trim(Copy(Fields, Pos, I - Pos));
if (I <= Length(Fields)) and (Fields[I] = ',') then Inc(I);
Pos := I;
end;var
Pos:integer;
begin
Pos := 1;
while Pos <= Length(FieldNames) do
begin
showmessage(ExtractFieldName(FieldNames, Pos));
end;
end;其實Delphi的DB單元有一個ExtractFieldName函數, 只不過它要求以";"分號分隔
sl : TStringlist;
begin
....
sl.Delimiter :=',';
//TStringlist默认的Delimiter是逗号,如果分隔符是其他字符,需要另外指定
sl.CommaText := 'aaa,bbb,ccc';
aaa := sl.Strings[0];
.....
end;