变体记录中的动态数组解决方案?保存为文件和从文件中调入?(50分)

  • 主题发起人 主题发起人 scLizongliang
  • 开始时间 开始时间
S

scLizongliang

Unregistered / Unconfirmed
GUEST, unregistred user!
变体记录中的动态数组保存为文件和从文件中调入

type //字符特征码
OChar = record
MyChar: char;
MyCharInfo: array[0..30, 0..30] of byte;
end;


//字符特征文件
OcrCharInfoEx = record
FileType:integer
//文件类型标识
FileVersion:real
//版本号
CharsWidth:byte
//字符宽度
CharsHeight:byte
//字符高度
PicCharLeftOff:byte
//第一个字符开始x偏移
TotalChars: byte
//图象字符总数
case Integer of
0:(Charinfo: array[0..9] of OChar);
1:(
FileSize:integer;
FileCharsTotal:byte;
PicHeight:byte;
PicWidth:byte;
PicCharUpOff:byte;
PicCharsSpace:byte;
CharinfoEx:Array of Byte
//<-动态数组 如果使用
);
end;

//或者
//字符特征文件
OcrCharInfoEx = record
FileType:integer
//文件类型标识
FileVersion:real
//版本号
CharsWidth:byte
//字符宽度
CharsHeight:byte
//字符高度
PicCharLeftOff:byte
//第一个字符开始左偏移
TotalChars: byte
//图象字符总数
case Integer of
0:(Charinfo: array[0..35] of OChar)
//<-0.1版文件格式
1:( //<-0.2版文件格式 以后可能还有N版文件格式....
FileSize:integer;
FileCharsTotal:byte;//<-域FileCharsTotal
PicHeight:byte;
PicWidth:byte;
PicCharUpOff:byte;
PicCharsSpace:byte;
CharinfoEx:Array[1..FileCharsTotal] of Byte
//<-动态数组 使用了域FileCharsTotal
);
end;
 
若想直接将Record保存为无类型文件,不能使用动态数组,或者string等没有明确长度的类型
 
如果用到动态数组,可以在写文件时写入数组长度,读出时设置动态数组长度即可。不宜直接保存Record。
 
后退
顶部