}
case TFormat.CF_STRUCT:
{
TStructDescription tsd = TStructRegistry.get(srData[devnr].getTag());
if (tsd == null) return TErrorList.invalid_structure_tag;
TTaggedStructure tts = tsd.getTaggedStructure();
int ssiz = tts.getSizeInBytes();
if (ssiz < 1) return TErrorList.invalid_structure_size;
len *= ssiz; // size in bytes of struct
byte[] d = new byte[len];
dis.read(d);
tts.toStruct(d);
dt = new TDataType(tts);
break;
}
default:
if (TFormat.isAllowedSaveAndRestoreTraceArray(fmt))