function ExtractSubString(OriginalStr, StartStr, EndStr: string; var NewStr: string): string;
var
? i, Len: integer;
? ss: string;
begin
? Result := '';
? Len := Length(OriginalStr);
? i := pos(StartStr, OriginalStr);
? if i > 0 then
? begin
??? ss := Copy(OriginalStr, i + Length(StartStr), Len);
??? //if EndStr = '', then copy all the string
??? if EndStr <> '' then
??? begin
????? i := pos(EndStr, ss);
????? if i > 0 then
????? begin
??????? Result := Copy(ss, 0, i - 1);
??????? NewStr := Copy(ss, Length(Result) + 1, Len);
????? end;
??? end else? //EndStr = ''
??? begin
????? Result := ss;
????? NewStr := '';
??? end;
? end;
end;
var
? i, Len: integer;
? ss: string;
begin
? Result := '';
? Len := Length(OriginalStr);
? i := pos(StartStr, OriginalStr);
? if i > 0 then
? begin
??? ss := Copy(OriginalStr, i + Length(StartStr), Len);
??? //if EndStr = '', then copy all the string
??? if EndStr <> '' then
??? begin
????? i := pos(EndStr, ss);
????? if i > 0 then
????? begin
??????? Result := Copy(ss, 0, i - 1);
??????? NewStr := Copy(ss, Length(Result) + 1, Len);
????? end;
??? end else? //EndStr = ''
??? begin
????? Result := ss;
????? NewStr := '';
??? end;
? end;
end;