Advertisement
zamaro

Incomplete World Tracker

May 6th, 2014
463
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.69 KB | None | 0 0
  1. program WorldTracker;
  2. {$I SRL-OSR/SRL.Simba}
  3.  
  4. var
  5. NewFile: integer;
  6. Str, OnlineVersion, NewScript, NewFileName: string;
  7.  
  8. function ReplaceEx(Text, FindStr, ReplaceStr: string; Offset: Integer; Flags: TReplaceFlags): string;
  9. var
  10. tL: Integer;
  11. begin
  12. tL := Length(Text);
  13. if (Offset < 1) then
  14. Offset := 1;
  15. if ((Length(FindStr) <= tL) and (Offset <= tL)) then
  16. {$IFNDEF Lape} Result := (Copy(Text, 1, (Offset - 1)) + ReplaceWrap(Copy(Text, Offset, ((tL - Offset) + 1)), FindStr, ReplaceStr, Flags)) {$ELSE}
  17. Result := (Copy(Text, 1, (Offset - 1)) + Replace(Copy(Text, Offset, ((tL - Offset) + 1)), FindStr, ReplaceStr, Flags)) {$ENDIF}
  18. else
  19. Result := '';
  20. end;
  21.  
  22. procedure ReadtheSite;
  23. var
  24. mystr1, mystr2: string;
  25. begin
  26. NewScript := GetPage('http://oldschool.runescape.com/slu');
  27. NewFileName := 'D:\' + 'WorldTracker.text';
  28. NewFile := Rewritefile(NewFileName, true);
  29. try
  30. WriteFileString(NewFile, NewScript);
  31. except
  32. begin
  33. writeLn('Fatal error writing to ' + NewFileName + '!!');
  34. terminatescript;
  35. end;
  36. end;
  37. CloseFile(NewFile);
  38. end;
  39.  
  40. function GrabText(HayStack: string; Between1, Between2: string): TStringArray;
  41. var
  42. Needle: string;
  43. Start, Ending, Iterator, Tracker: Integer;
  44. begin
  45. while (Iterator < Length(HayStack) + Ending) do
  46. begin
  47. Start := PosEx(Between1, HayStack, Start);
  48. Ending := PosEx(Between2, HayStack, Ending);
  49. Iterator := Iterator + Ending;
  50. Needle := Copy(HayStack, Start + Length(Between1), Ending - Start - Length(Between1));
  51. Start := Ending + 1;
  52. Ending := Ending + 1;
  53. SetLength(Result, Tracker + 1);
  54. Result[Tracker] := Needle;
  55. Inc(Tracker);
  56. end;
  57. for Start := 0 to High(Result) do
  58. if (Result[Start] = '') then
  59. DeleteValueInStrArray(Result, Start);
  60. end;
  61.  
  62. function ReadFileLine(const FileToRead: string; LineNumber: Integer): string;
  63. var
  64. File, Size: Integer;
  65. Buffer: string;
  66. List: TStringList;
  67. begin
  68. File := OpenFile(FileToRead, False);
  69. if (File <> - 1) then
  70. begin
  71. Size := FileSize(File);
  72. if (ReadFileString(File, Buffer, Size)) then
  73. begin
  74. List := TStringList.Create;
  75. SplitRegExpr('\n', Buffer, List);
  76. if (List.Count > LineNumber) then
  77. Result := List[LineNumber];
  78. List.Free;
  79. end;
  80. CloseFile(File);
  81. end;
  82. end;
  83.  
  84. function BetweenEx(str: string; pos1, pos2: Integer): string;
  85. var
  86. i, l: Integer;
  87. begin
  88. l := Length(str);
  89. if (pos1 < 0) then
  90. pos1 := 0;
  91. if (pos1 > (l + 1)) then
  92. pos1 := (l + 1);
  93. if (pos2 < 0) then
  94. pos2 := 0;
  95. if (pos2 > (l + 1)) then
  96. pos2 := (l + 1);
  97. if (pos1 < pos2) then
  98. Result := Copy(str, (pos1 + 1), ((pos2 - pos1) - 1))
  99. else if (pos1 <> pos2) then
  100. begin
  101. SetLength(Result, ((pos1 - pos2) - 1));
  102. for i := (pos1 - 1) downto (pos2 + 1) do
  103. Result[(pos1 - i)] := Char(str[i]);
  104. end
  105. else
  106. Result := '';
  107. end;
  108.  
  109. procedure readTheFile;
  110. var
  111. STr3, str4, str2, str, WorldInfo: string;
  112. CurrentWorld1, CurrentPop: integer;
  113. begin
  114. WorldInfo := ReadFileLine('D:\WorldTracker.text', 156);
  115. writeln(worldinfo);
  116. str2 := (trim(worldinfo));
  117. str := WorldInfo;
  118. Str4 := BetweenEx(str, Pos('oldschool', str), Pos('",', str));
  119. writeln(str4);
  120. CurrentWorld1 := StrToIntDef(GetNumbers(Str4), 0);
  121. writeln('World we are Checking: ' + IntToStr(CurrentWorld1));
  122. Str3 := BetweenEx(str, Pos('",', str), Pos(',"United', str));
  123. CurrentPop := StrToIntDef(GetNumbers(Str3), 0);
  124. writeln('And its current population is : ' + IntToStr(CurrentPop));
  125. end;
  126.  
  127. procedure mainloop;
  128. begin
  129. ReadtheSite;
  130. readTheFile;
  131. end;
  132.  
  133. begin
  134. repeat
  135. wait(2000);
  136. cleardebug;
  137. mainloop;
  138. until (false);
  139. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement