如何取一个字符的多个位置! ( 积分: 30 )

  • 主题发起人 主题发起人 xiazhiguo
  • 开始时间 开始时间
X

xiazhiguo

Unregistered / Unconfirmed
GUEST, unregistred user!
字符串:“osname,unitname,PIdCard,pBirthDate,Pname,Age,” 如何取“,”的位置。
 
是分段还是什么的
 
可以这样做,把
osname
unitname
PIdCard
pBirthDate
Pname
Age
放在一个数组里,看好不好实现。
 
procedure TForm1.Button1Click(Sender: TObject);
Var
List : TStrings;
I,T : integer;
begin
List := TStringList.Create;
Try
List.StrictDelimiter := True;
List.Delimiter := ',';
List.DelimitedText := 'osname,unitname,PIdCard,pBirthDate,Pname,Age,';

T := 0;
for I := 0 to List.Count - 2 do
begin
T := T + Length(List)+1;
ShowMessage(InttoStr(T));
end;

Finally
List.Free;
End;

end;
 
StrictDelimiter找不到,不能编译。
我用的是D7编译的。
 
为什么不使用PosEx函数呢?
 
我是新手,不会用,新指教,谢谢!
 
如果不会用PosEx函数,那就直接把你上面说的那串字符当作一个整体,如果你单是要','的位置的话,用循环的方法也可以实现
 
为什么不使用PosEx函数呢?
 
To XiaZhiGuo:
我是用TurboDelphi编译的,没有问题,刚刚用D7,发现果然没有这个属性,呵呵。

用下面的吧。

procedure TForm1.Button2Click(Sender: TObject);
Var
S : String;
T : integer;
begin
S := 'osname,unitname,PIdCard,pBirthDate,Pname,Age,';
T := 1;
While True do
begin
T := PosEx(',',S,T);
if T = 0 then Break

ShowMessage(IntToStr(T));
Inc(T);
end;
end;
 
接受答案了.
 
后退
顶部