Re: Suggestions for FILEMAN.E

new topic     » topic index » view thread      » older message » newer message

>Like Dbase, how about a status byte as the first character in a record?
>To represent a deleted record, place an ASCII 0 there, and an ASCII 1 or
>larger code to represent a valid, active record.  Thus, when you
>delete a record, all you need to do is set the status byte to zero. You
>can leave the actual record data alone, which will permit an undelete
>later, if you desire.

Duh, why didn't I think of that?!!! Excellent suggestion.  Thank you.

>One record format I read about placed an ASCII 26 after the header
>identification.  ASCII 26 is the old end of file marker for DOS.
>Thus, if you placed such a character at byte position
>3, then if the file is read in line mode, by Euphoria or another program,
>all they will see is Eu.

Hmmm.  I'm not sure if that would be a good thing or a bad thing... I'll
get back to you on that one.

>I think Ralf mentioned that you should open these files in binary mode.
>That way any character from 0 to 255 is permissable and will not affect
>the read or write routines.

Yes, and I started out opening files in binary mode, but I was having
all kinds of trouble with file positioning.  For some reason, switching
to ASCII mode seemed to solve it.  Perhaps it's time for another try.

**P.S. to Ralf,  I tried to respond to your reply to the Listserv two days
ago, and I got a message back this morning saying it hadn't gone through.
Sorry**

>You will need to have a way to sort the file records.  I would think
>sorting by some combination of fields would be a nice touch.  If you
>include the status byte, then you could sort all deleted records to
>the end of the file, or simply drop them....

>Indexing comes to mind, also.

That's the reason I've reserved a full 1,024 bytes for the header, and the
mysterious 12-byte reserved area as well (8.3 filenames).  So far, I haven't
thought up
a way to make an indexed file that's faster than seqential reads.  Once
I (or someone else) works that part out, I definitely want to add indexing!
I like the theory behind "linked lists" in C and C--.  I'm thinking of something
along the same lines for an indexing method.

>If an area in the header were to be reserved as a pointer to the
>first deleted record, you would be able to add a record by reusing
>the space occupied by a deleted record.  And if that record were big
>enough, it could in turn point to the next deleted record.

But we wouldn't want to do this if we were going to UNDELETE records...
( yeah, I know - cop out, but I do have a point blink

>It might be fun to code a routine to compact the file in place.
>That is, you could rearrange the file such that all deleted records
>are placed after all the data records, without coping to a second file.

Perhaps reformat is ready for v 2.0?

Brian Jackson
Programmer/Analyst
Printing, Inc

(316) 265-1201 x 225
www.printinginc.com

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu