我的代码是这样的.procedure TxgForm2.N6Click(Sender: TObject); var s:TStringlist; ss:string; i1,i:integer; begin s:=TStringList.Create; s.LoadFromFile( 'E:\seiko\order_tj\show.ini '); for i:=s.Count-1 downto 0 do begin ss:=(s.Strings[i]); //s[i].string; ShowMessage(inttostr(Length(ss)));//这里计算正常 ShowMessage(inttostr(Length(ss)-2));//这里计算正常 ShowMessage(LeftStr(ss,AnsiPos('=',ss)-1));//这里就不对了,减不减1,反回的结果都是全部SS的内容. end;end;
ShowMessage(IntToStr(AnsiPos('=',a)));
str:TStrings;
a:string;
begin
a:='afef=1';
str:=TStringList.Create;
str.Clear;
ExtractStrings(['='],[],PChar(a),str);
self.ListBox1.Items:=str;
end;
a:='afef=1'
ShowMessage(PChar('键名: '+LeftStr(a,AnsiPos('=',a))));
// 应该反回的是afef吧?可我的反回是全部.
我的返回的是afef=1,不解.
var
s:TStringlist;
ss:string;
i1,i:integer;
begin
s:=TStringList.Create;
s.LoadFromFile( 'E:\seiko\order_tj\show.ini ');
for i:=s.Count-1 downto 0 do
begin
ss:=(s.Strings[i]); //s[i].string;
ShowMessage(inttostr(Length(ss)));//这里计算正常
ShowMessage(inttostr(Length(ss)-2));//这里计算正常
ShowMessage(LeftStr(ss,AnsiPos('=',ss)-1));//这里就不对了,减不减1,反回的结果都是全部SS的内容.
end;end;
str.Add('afef=1');
ShowMessage(str.Names[0]);
ShowMessage(str.Values[0]);
还不能满足你再用正则提取啊…………
sl: TStringList;
a: string;
begin
a := 'afef=1';
sl := TStringList.Create;
sl.Add(a);
Form1.Caption := sl.Values['afef']; //得出的结果是1.
sl.Free;
end;