Reading a file in reverse order --- How?

*To*: mathgroup at smc.vnet.net*Subject*: [mg129790] Reading a file in reverse order --- How?*From*: Virgil Stokes <vs at it.uu.se>*Date*: Thu, 14 Feb 2013 02:08:38 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*Delivered-to*: l-mathgroup@wolfram.com*Delivered-to*: mathgroup-newout@smc.vnet.net*Delivered-to*: mathgroup-newsend@smc.vnet.net

Here is a very simple example of saving lists (writing to a file) and then reading the lists back in the same order as they were written. The problem that I would like to get a solution to is how can the lists be *read in reverse order?* Thus, the first list saved would be the last list to be inputted. Note, in general, the length of each list is the same and rather small; but, the number of lists written to the file can be rather large (n > 10,000), at least too large to keep all of them in memory. fname = "testfile"; strm = OpenWrite[fname]; n = 3; (* In general, n could be very large *) For[k = 1, k <= n, k++, (* Create list on each pass through this loop ... *) POt = {{k, k + 1}, {k + 2, k + 3}}; (* Print[POt]; *) (* Save list to a file *) Write[strm, POt]; ]; Close[strm]; (* Other processing performed... *) (* Open file with lists *) strm = OpenRead[fname]; (* Process, sequentially, each list that was saved *) For[i = 1, i <= n, i++, PIn = Read[strm]; (* Print[PIn]; *) (* Process PIn ... *) ]; Close[strm];