Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. INDEX_OFFSET_POSITION := 5
  2. INDEX_OFFSET_LENGTH := 8
  3. INDEX_LENGTH_POSITION := 14
  4. INDEX_LENGTH_LENGTH := 4
  5.  
  6. GAMESTRING_LENGTH := 359
  7.  
  8. PROC getSelection(position:PTR TO INT, linecount:PTR TO INT)
  9. DEF start = 0:PTR TO INT
  10. DEF end = 0:PTR TO INT
  11. DEF totallines = 0:PTR TO INT
  12. DEF indexlength = NIL:PTR TO CHAR
  13. DEF indexoffset = NIL:PTR TO CHAR
  14. DEF allindexstring = NIL:PTR TO CHAR
  15. DEF allgamestring = NIL:PTR TO CHAR
  16. DEF gamestring = NIL:PTR TO CHAR
  17. DEF paddedgamestring = NIL:PTR TO CHAR
  18.  
  19. IF (position < 0)
  20. start := 0
  21. ELSE
  22. start := position
  23. ENDIF
  24.  
  25. totallines := self.indexfile.length() / self.indexlinewidth
  26.  
  27. IF ((position + linecount) >= totallines)
  28. end := totallines - position - 1
  29. ELSE
  30. end := linecount - 1
  31. ENDIF
  32.  
  33. indexoffset := String(INDEX_OFFSET_LENGTH)
  34. indexlength := String(INDEX_LENGTH_LENGTH)
  35. allgamestring := String(GAMESTRING_LENGTH * end)
  36.  
  37. self.indexfile.moveFromBeginning(start * self.indexlinewidth)
  38. allindexstring := self.indexfile.read(end * self.indexlinewidth)
  39.  
  40. FOR i := 0 TO end
  41. IF (gamestring) THEN DisposeLink(gamestring)
  42.  
  43. MidStr(indexoffset, allindexstring, INDEX_OFFSET_POSITION + (i * self.indexlinewidth), INDEX_OFFSET_LENGTH)
  44. MidStr(indexlength, allindexstring, INDEX_LENGTH_POSITION + (i * self.indexlinewidth), INDEX_LENGTH_LENGTH)
  45.  
  46. self.masterfile.moveFromBeginning(Val(indexoffset))
  47. gamestring := self.masterfile.read(Val(indexlength))
  48. paddedgamestring := strToPaddedGameStr(gamestring)
  49. StrAdd(allgamestring, paddedgamestring)
  50. ENDFOR
  51. ENDPROC gamestring
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement