Hey guys

I have, in past, when working with record data structure, used something like this

Code:
Private Type EmployeeRecord
EmpName As String * 20
JobTitle As String * 25
End Type
I have been told that the *20 / *25 (making the records a fixed length) is more efficient as then I can use:

Code:
Open "filename" For Random Access Read As #1 Len = 45
A few questions:

Firstly, is it possible to have records of a non-fixed length?

Secondly, why are fixed record lengths more efficient?

And my main question:

I intend to write a "Quiz" or "Test" program in VB6. Said program will allow one user to create a quiz with a combination of multiple choice questions and other questions that require an extended response (and "manual" marking). The questions will be saved to a file which is distributed to one or more "candidates" who can answer the quiz.

The first issue is that the questions (and answers) may be of many different lengths, from something as simple as "2+2" then "4" to a full "mini-essay" task. Would it be better practice to make my records a fixed length, something like 500 characters therefore 500 bytes for the question field, knowing that in many cases, about 480 of these bytes will sit empty? Or would a non-fixed length record be acceptable here?

Secondly, the "candidate" will need to answer questions in different ways - either "check the boxes" for a multiple-choice style question, or lots of writing for extended response questions etc etc.

I would quite like to create one neat "candidate's answer" file.

I would, then, require to write different record types to the same "answer file" I believe.

Is this possible? How would I, going through the file for "marking", determine whether the question we've just reached is a multichoice question therefore a multichoice record, or an extended response answer?

Is it possible to create a new "recordtype" in the "marking project" that is just one variable, for example, here is the 2 record answer file (pseudocode):

Code:
Multichoice A B # # E
Extendedresponse "long answer"
Then something like

Code:
Private Type FindQtype
Qtype as string
End Type
Code:
Dim questiontype as FindQtype

Open answerfile for randomaccess read  as #1
Get #1, current_record, questiontype

If questiontype = multichoice then call multichoice marking module
Else if questiontype = extendedresponse then call extresp marking module
Sorry to write such a long post!!