【delphi开源代码栏目提醒】:网学会员,鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“FeatureManage.pas”一文,供大家参考学习!
unit FeatureManage;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, typevalue;
type
NumCharPattern = record
Num: integer;
FeatureDetail: array[0..500,1..8,1..8] of integer;
end;
FindNumber = record
Numb:integer;
order: array[0..500] of integer;
end;
type
TFeature = class
private
Featuretype: array [0..500,0..63] of integer;
class function GetSubStr(var aString:String;SepChar:String):String;
class function GetSubStrNum(aString:String;SepChar:String):integer;
public
class procedure SaveToFile();
class procedure Openfile();
class function FeatureCompare():double;
end;
var
Featurestr:array [1..8,1..8] of integer;
implementation
uses main;
////////////////////////////////////////////////////////////
class procedure TFeature.SaveToFile();
var //记录每个数字的各个模板
n,i,j,k,Number:integer;
SepChar:String;
PatternFile:TextFile;
pathstring:string;
begin
PathString:=ExtractFilePath(Application.ExeName)+'Feature\Pattern.txt';
Assignfile(PatternFile,PathString);
ReWrite(PatternFile);//写模板文件
SepChar:=' ';
for Number := 0 to 9 do //记录数字‘0’到‘9’的各模板数据
if Pattern[Number].Num=0 then
begin
Writeln(PatternFile,IntToStr(Number));//记录具体的数字
Writeln(PatternFile,IntToStr(0));//记录该数字模板的个数
end
else
if Pattern[Number].Num<>0 then
begin
Writeln(PatternFile,IntToStr(Number));//记录具体的数字
Writeln(PatternFile,IntToStr(pattern[Number].Num));//记录该数字模板的个数
for k:=1 to Pattern[Number].Num do
begin //记录每个模板的8*8的具体特征值
Writeln(PatternFile,IntToStr(pattern[Number].FeatureDetail[k][1,1]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,2]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,3]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,4]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,5]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,6]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,7]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][1,8]),SepChar);
Writeln(PatternFile,IntToStr(pattern[Number].FeatureDetail[k][2,1]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,2]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,3]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,4]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,5]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,6]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,7]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][2,8]),SepChar);
Writeln(PatternFile,IntToStr(Pattern[Number].FeatureDetail[k][3,1]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,2]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,3]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,4]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,5]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,6]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,7]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][3,8]),SepChar);
Writeln(PatternFile,IntToStr(pattern[Number].FeatureDetail[k][4,1]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,2]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,3]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,4]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,5]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,6]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,7]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][4,8]),SepChar);
Writeln(PatternFile,IntToStr(pattern[Number].FeatureDetail[k][5,1]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,2]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,3]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,4]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,5]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,6]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,7]),
SepChar,IntToStr(Pattern[Number].FeatureDetail[k][5,8]),SepChar)