function GetLastValue(const S: string; AList: string): string;
var
LastOneFound, CurrentOnefound: integer;
begin
Result := '';
lastOneFound := 0;
CurrentOneFound := 1;
repeat
CurrentOnefound := PosEx(S, AList, CurrentOnefound);
if (CurrentOneFound <> 0) and (AList[CurrentOneFound + Length(S)] = '=') then
if (CurrentOneFOund = 1) or (Alist[CurrentOneFound - 1] < #32) then
LastOneFound := CurrentOneFound;
if CurrentOneFound <> 0 then
while AList[CurrentOneFound] >= #32 do
Inc(CurrentOneFound);
until CurrentOneFound = 0;
if lastOneFound <> 0 then
begin
Inc(LastOneFound, Length(S) + 1);
while not (Alist[LastOneFound] in [#0, #13, #10]) do
begin
Result := Result + Alist[LastOneFound];
Inc(LastOneFound);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := GetLastValue('pie', Memo1.Lines.Text);
end;