27.11.2009, 14:27
общий
это ответ
Здравствуйте, Kensh1n.
Предлагаю Вам несколько переработанный вариант :
uses StrUtils;
// StartParseFrom - номер символа в строке, с которого будет производиться обработка
function GetInnerText(const Source, StartFragment, EndFragment: string; StartParseFrom:integer): string;
var
i:integer;
PosStart, PosEnd: Integer;
begin
PosStart := PosEx(StartFragment, Source,StartParseFrom);
if PosStart > 0 then
begin
Inc(PosStart, Length(StartFragment));
if PosStart < Length(Source) then
begin
PosEnd := PosEx(EndFragment, Source, PosStart+Length(StartFragment));
if PosEnd > PosStart then
begin
Result := Copy(Source, PosStart, PosEnd - PosStart);
Exit;
end;
end;
end;
end;
// Пример использования
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='\row что-то бесполезное \row наша строка, котрую нам нужно вырезать \ row';
Edit1.Text:=
GetInnerText(s,'\row','\ row',Pos('\row',s)+1);
// в Edit1 появится следующий тект - " наша строка, котрую нам нужно вырезать "
end;
Обращаю Ваше внимание на то что необходимо добавить модуль StrUtils в uses.