Alex Tweedly wrote: > Jeff Massung wrote: > > Warren, > > > > I've read through most of these suggestions, but I'm surprised that > the > > obvious hasn't been suggested yet (that I've seen): skip > everything... > > > > > Hasn't been suggested because it won't work. > > > put the length of url "file:myfile.txt" into tEnd > > open file "myfile.txt" for text update > > seek to tEnd in file "myfile.txt" > > > > >From here just back up a "reasonable" number of characters... say > 200. Find > > the last CR character, nuke everything else and close the file. > Didn't find > > one? Try backing up another 200, etc. It'll be a whole lot faster. > > > > > "... nuke everything else ...." ?? How ? > You've opened the file for update, so anything that you write to the > file *overwrites* any existing characters at the same position(s), and > leaves everything following that unchanged. So there is no way to > shorten a file if opened in update mode. > > I *think* the best you can do is > > 1. find file length (best to use the detailed files) > 2. open for read, and read some chunk at the end (200, 1000, whatever > ....) > (open for read is more efficient than open for update) > 3. calculate the number of bytes to be deleted off the end of the file > 4. close the file > 5. open the file for append > 6. write empty to the file at the appropriate point > > Edge case to concern yourself with would be if your file happens to > end with > > a CR and maybe you want to ignore those cases. But that should be > easy > > enough to solve. > > > > > Easiest (and I think best) way to resolve that corner case is to > preserve the trailing CR if it's there to begin with, and not leave one > if it wasn't there to start with. This happens to involve no extra work > at all, hence it's the easiest one :-) > > I decided it was time to email some (reasonably tested) revTalk rather > than just ideas .... > > (NB assumes that the defaultfolder has already been set to the > appropriate place) > > on deletelastline pFile > > constant K = 1000 > > put the detailed files into t > > filter t with pFile & ",*" > > put item 2 of t into tFileLength > > > > open file pFile for read > > seek to tFileLength-K in file pFile > > read from file pFile until end > > close file pFile > > > > put the number of chars in the last line of it into tNum > > > > open file pFile for append > > write empty to file pFile at (tFileLength-tNum-3) > > close file pFile > > > > end deletelastline > -- Alex.
Just one thing Alex, you need to: put URLDecode(the detailed files) into t in case the file name has, for example, a space in it. Aloha from Hawaii, Jim Bufalini _______________________________________________ use-revolution mailing list [email protected] Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-revolution
