I think if I was going to do a RA data base file today, I wouldn't, specially if it were to need lots of strings.
Pete's reply reminded of all the wasted space involved with RA in last reply.
Nope it would be Binary only to load and store. Use a Record divider with one character, why not CHR$(10) and another character to divide the fields maybe "|". Open for Binary and Load it or Download it as a giant string. Split the string to records then split the records as needed to fields. Then reverse that process to load it back to the file again after adding and editing all the data. I might not even need a Type definition, just an double array with Field names with values from each record going in and out. Probably could sort by array index number.
I wonder what I am forgetting?
If I need variable length strings in a database, I always write TWO databases. The first is my data, the 2nd is my index to the data.
For example, my data might be: dog, cheese, elephant, basketball
My first database would be binary data of :dogcheeseelephantbasketball
My second database would be the index of 3, 9, 17, 27
When I need any record, all I need is to check 2 indexes. For example, to find the 3rd record in my database, I look at index 2 and 3. Index 2 ends at byte 9, so I start reading the main database at byte 10, and I finish reading the database at Index 3, or at byte 17.
From byte 10 to 17 is “elephant”.
Hopefully, I should be home later today, so if you guys want a demo, I can work up a simple example later this afternoon, if anyone would find it useful.