In fact, it's not too difficult to achieve what you want if you design the data/XML layout well. First of all, I would generally split any data in a "Header" and a "Content" section (name it what you like). There's a reason why all text protocolls like HTML or SOAP make it like this, too.
😉Within the Header section (an array of possible "DataInfo" types), you should store information about the file itself = data structure or VI version info (
very important!), how the reading VI should treat missing data and so on. The "Content" section then gets the actual values, once again an array of recurring "DataContent" types. If the "DataContent" types are e.g. pairs of data and metadata (type information strings), they will deal with literally any data you want to store now and in the future.
It's the job of your forthcoming VIs to know what to do when an old data file is read - at least, they'll have the version info of the file and get aware of some old stuff coming up... with handing out predefined standard values for data missing in the old file!
It's pretty easy to write some wrappers around the simple flatten/unflatten XML functions of LabVIEW to get the described comfort.
Greetings,
Hans
Message Edited by HJPhilippi on 11-23-2006 02:01 PM