> On Thu, Jun 17, 1999 at 12:21:45PM -0700, Mark Yannuzzi wrote: >> I have a script that generates a data file that I wish to update. The files >> structure is simply: >> >> 1st Line: Date & Time Stamp. >> 2nd Line: Data Column Labels. >> nth Line: Columnar Data. >> >> I need to: >> >> 1) Update the first two lines of the file. >> 2) Append data to the file. > > This is an FAQ. > > perlfaq5: > > How do I change one line in a file/delete a line in a > file/insert a line in the middle of a file/append to the > beginning of a file? Yes, I found it, sorry...I checked the Camel book, the MacPerl book, but not the FAQ's. > >> Depending on the structure of the new data that I wish to add to the >> existing data, it may be necessary for me to change (add to the end of the >> line) the label line to accommodate additional data columns. >> >> The '>>' option for the OPEN command is clearly not what I need, since I >> need to read & rewrite the first two lines of the existing data file. >> >> I tried '+>>' with OPEN, and used 'seek' and substitute operations, but this >> simply appended the lines, instead of replacing the first two. >> >> How does one do this? Is a temp file the only way, whereby: >> 1) Create temp file and write existing files data to it, and close both. >> Or simply duplicate the existing file to create the temp file (I don't >> know if there is a file command in MacPerl to do this, or not). >> 2) OPEN '>' the existing file, write the two new date/time & label lines. >> 3) Open and copy the temp files data, less the first two lines. >> 4) Append new data. >> >> The problem I see here, if this is indeed the way to do it, is that the >> Creation date of my existing data file will change. I do not want this to >> happen. >> > > A temp file is one way. Another way is to open for reading and writing > with '+<'. I believe that opening for append ('>>' or '+>>') seeks to the > end of the file before each write, which is why that did not work for you. I did try '+<' (and '+>, but this erased the exisiting contents), and it appears to work, however at first glance, only if my replacement text is the same byte size, otherwise it overwrites existing text. It appears the temp file method is the way to go. I was hoping that Perl would handle ASCII files, like Pascal does, and am suprised that it does not, given that it seems to be geared towards (Practical) Extraction and Reporting (Language). Mark ---------------------- Mark J. Yannuzzi myannuzzi@aya.yale.edu ==== Want to unsubscribe from this list? ==== Send mail with body "unsubscribe" to macperl-anyperl-request@macperl.org