Jess is on the right track, seperate files for eache entry would keep the memory drain to a minimum, you could also do it this way, to save on memory, open the file as it is to date, then write it to another file (called for example "temp") then add to that file any alterations you need and write them to the file as you make them, then close the file when the program exits and delete the original file, then save the temp file as the "project" file and delete the temp file, just one memblock would waste memory and would keep growing until it ate all the memory the system had, just make you own file format/system using open to write and open to read, where (for example) chr$255 marks the end of an entry, then you can scan through the file day by day (stopping when you hit Chr$255), and add bits in if you like, when you want to edit an entry then make a new file, write all the entries up to the day you edited, then write the edited file in place of it, then write the rest of the files,delete the original file and then rename the new file, that way all you need to hold in memory is the day you looking at/editing, you can store all sorts of data in the same file, images,music etc, all you need to do is use non ascii codes to mark where the picture data starts and ends, where the text starts/ends, same for video, music etc, just encode the whole lot as a file and write that to disk, I will cobble up an example if you can`t make sense of my ramblings, cheers.
Mentor.
PC1: P4 hyperthreading 3ghz, 1gig mem, 2x160gig hd`s, Nvidia FX5900 gfx, 6 way surround sound, PC2: AMD 1.2ghz, 512mb ram, FX5200 ultra gfx, stereo 16 bit soundblaster.