×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Variable-length record access can occur if the following are true:

(1) only the last field in a record is VARLEN
(2)  the VARLEN field is not key
(3) the UFCB byte at decimal offset 188, bit number 7, is on
(4) the UFCB at decimal offset 189-190 contains the minimum variable length
for record

Then you can omit the two-byte field length prefix in your VARLEN field as
you write the record.  Instead, append the BIN(2) length you want after the
record buffer, followed by a gap, followed by the null map.

If you manually block/unblock records by setting on the UFCB bit at decimal
offset 184 bit number 2, then the UFCB record input/output pointers will
point to the this structure:

0:  PTR(SPP)  to next record input, or next position for output
16:  BIN(2) count of records
18:  BIN(2) maximum number of records transferred
20:  BIN(2) offset from record to record
22:  BIN(2) offset to record feedback
24:  BIN(2) offset to null field byte map
26:  BIN(2) offset to null key byte map
28:  gap
??:  first record

I don't know what the gap is for, but you can use offset arithmetic to get
to the first record.



This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.