Janilabo

Untitled

Aug 7th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.10 KB | None | 0 0
  1. var
  2.   ITEM_DB_DATA: string;
  3.  
  4. function GetItemDBData(path: string): string;
  5. var
  6.   xmlF: Integer;
  7.   xmlFD: string;
  8. begin
  9.   if FileExists(path) then
  10.   begin
  11.     xmlF := OpenFile(path, False);
  12.     ReadFileString(xmlF, Result, FileSize(xmlF));
  13.     CloseFile(xmlF);
  14.   end;
  15. end;
  16.  
  17. function Expand(trgt_pos: Integer; s1, s2, str: string): string;
  18. var
  19.   l, p, start, finish, s1L, s2L: Integer;
  20.   tmp: string;
  21. begin
  22.   l := Length(str);
  23.   s1L := Length(s1);
  24.   s2L := Length(s2);
  25.   if ((s1L > l) or (s2L > l) or (trgt_pos > l) or (trgt_pos < 1)) then
  26.     Exit;
  27.   finish := PosEx(s2, str, trgt_pos);
  28.   if (finish <= 0) then
  29.     Exit;
  30.   tmp := Copy(str, 1, trgt_pos);
  31.   repeat
  32.     p := PosEx(s1, tmp, (p + 1));
  33.     if (p > 0) then
  34.       start := p;
  35.   until (p <= 0);
  36.   if (start > 0) then
  37.     if (start < finish) then
  38.       Result := Copy(str, (start + s1L), ((finish - start) - s2L));
  39. end;
  40.  
  41. begin
  42.   ClearDebug;
  43.   ITEM_DB_DATA := GetItemDBData(ScriptPath + 'ItemDef.xml');
  44.   WriteLn(Expand(Pos('<sprite>82</sprite>', ITEM_DB_DATA), '<ItemDef>', '</ItemDef>', ITEM_DB_DATA));
  45.   ITEM_DB_DATA := '';
  46. end.
Advertisement
Add Comment
Please, Sign In to add comment