Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Expand(trgt_pos: Integer; s1, s2, str: string): string;
- var
- l, p, start, finish, s1L, s2L: Integer;
- tmp: string;
- begin
- l := Length(str);
- s1L := Length(s1);
- s2L := Length(s2);
- if ((s1L > l) or (s2L > l) or (trgt_pos > l) or (trgt_pos < 1)) then
- Exit;
- finish := PosEx(s2, str, trgt_pos);
- if ((finish < 1) or (finish = trgt_pos)) then
- Exit;
- tmp := Copy(str, 1, trgt_pos);
- repeat
- p := PosEx(s1, tmp, (p + 1));
- if (p > 0) then
- start := p;
- until (p <= 0);
- if ((start <> trgt_pos) and (start > 0) and (finish > 0) and (start < finish)) then
- Result := Copy(str, (start + s1L), ((finish - start) - s2L));
- tmp := '';
- end;
- var
- str, tmp: string;
- id, id_pos: Integer;
- begin
- ClearDebug;
- str := '<item_list>' + #13#10 +
- ' <item_data>' + #13#10 +
- ' <item_name>Apple</item_name>' + #13#10 +
- ' <item_category>Fruits</item_category>' + #13#10 +
- ' <item_ID>2</item_ID>' + #13#10 +
- ' <item_description>Great fruit</item_description>' + #13#10 +
- ' </item_data>' + #13#10 +
- ' <item_data>' + #13#10 +
- ' <item_name>Strawberry</item_name>' + #13#10 +
- ' <item_category>Berries</item_category>' + #13#10 +
- ' <item_ID>0</item_ID>' + #13#10 +
- ' <item_description>Sweet berry</item_description>' + #13#10 +
- ' </item_data>' + #13#10 +
- ' <item_data>' + #13#10 +
- ' <item_name>Tomato</item_name>' + #13#10 +
- ' <item_category>Vegetables</item_category>' + #13#10 +
- ' <item_ID>1</item_ID>' + #13#10
- ' <item_description>Healthy vegetable</item_description>' + #13#10 +
- ' </item_data>' + #13#10 +
- '</item_list>';
- for id := 0 to 2 do
- begin
- id_pos := Pos(('<item_ID>' + IntToStr(id) + '</item_ID>'), Between('<item_list>', '</item_list>', str));
- if (id_pos > 0) then
- begin
- tmp := Expand(id_pos, '<item_data>', '</item_data>', str);
- WriteLn('Item nr.' + IntToStr(id) + ':' + #13#10 +
- 'Name: ' + Between('<item_name>', '</item_name>', tmp) + #13#10
- 'Description: ' + Between('<item_description>', '</item_description>', tmp) + #13#10
- 'Category: ' + Between('<item_category>', '</item_category>', tmp) + #13#10);
- tmp := '';
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment