[Rd] raw connections: reading does not alter current position pointer

William Dunlap wdunlap at tibco.com
Mon May 2 20:13:25 CEST 2011


Am I misunderstanding rawConnections here or are
rawConnections not working right yet?  It looks
like I can use seek() to position the read pointer
but readBin does not position the read pointer past
what has just been read.

  > myRawTen <- as.raw(101:110)
  > str(myRawTen)
   raw [1:10] 65 66 67 68 ...
  > rawToChar(myRawTen)
  [1] "efghijklmn"
  > myRawTenCon <- rawConnection(myRawTen)
  > readBin(myRawTenCon, what="integer", size=2, n=1)
  [1] 26213
  > c(26213%%256, 26213%/%256)
  [1] 101 102
  > # next 2-byte integer should be 104*256 + 103 = 26727
  > readBin(myRawTenCon, what="integer", size=2, n=1)
  [1] 26213
  > # if I seek() explicitly it works
  > seek(myRawTenCon, 2)
  [1] 6
  > readBin(myRawTenCon, what="integer", size=2, n=1)
  [1] 26727
  
  > seek(myRawTenCon, 6) # look at last 4 bytes: 107:110
  [1] 0
  > # multiple reads in one call to readBin do not advance
  > # the position pointer:
  > readBin(myRawTenCon, what="integer", size=1, n=4)
  [1] 107 107 107 107

  > sessionInfo()
  R version 2.13.0 (2011-04-13)
  Platform: i386-pc-mingw32/i386 (32-bit)

  locale:
  [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United
States.1252    LC_MONETARY=English_United States.1252
  [4] LC_NUMERIC=C                           LC_TIME=English_United
States.1252    

  attached base packages:
  [1] stats     graphics  grDevices utils     datasets  methods   base


  other attached packages:
  [1] lattice_0.19-23 MASS_7.3-12    

  loaded via a namespace (and not attached):
  [1] compiler_2.13.0 grid_2.13.0     tools_2.13.0   

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 



More information about the R-devel mailing list