1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139:
| procedure TDxfImport.Button1Click(Sender: TObject); var FC:TDxfFilterConfigData; begin FC:=TDxfImportFilterConfig.Create(); FC.SaveToFile('c:\Geri'); end;
unit uFilterConfigBase; interface uses classes, sysUtils;
const MaxLayer =100; MaxTool = 100;
Type
TFilterConfigData = class(TObject) Constructor create(); overload; Procedure Store(s:TFileStream); virtual; Procedure Load(s:TFileStream); virtual; End;
TDxfImportFilterConfigData = Class(TFilterConfigData) ImportLayerName:Array[0..MaxLayer] of String; LayerID: Array[0..MaxLayer-1] of Integer; ToolID:Array[0..MaxTool-1] of Integer; Procedure Store(s:TFileStream); overload; Procedure Load(s:TFileStream); overload; End;
TFilterConfigBase = class FilterConfigData:TFilterConfigData; Constructor Create(); Function LoadFromFile(name:String):Integer;virtual; Function SaveToFile(name:String):Integer; virtual; function Process:Integer; end;
TDxfImportFilterConfig = class(TFilterConfigBase) Constructor Create(); end;
implementation
Constructor TFilterConfigData.create(); Begin inherited create(); End;
Procedure TFilterConfigData.Store(s:TFileStream); Begin End;
Procedure TDxfImportFilterConfigData.Load(s:TFileStream); var Len:Integer; i:Integer; Begin S.Read(Len, SizeOf(Len)); S.Read(Len, SizeOf(Len)); S.Read(LayerID,SizeOf(LayerID)); S.Read(ToolID,SizeOf(ToolID)); For i:= 0 to MaxLayer-1 Do Begin S.Read(Len, SizeOf(Len)); SetLength(ImportLayerName[i], Len); S.Read(PChar(ImportLayerName[i])^, Len); End; End;
Procedure TDxfImportFilterConfigData.Store(s:TFileStream); var len:Integer; i:Integer; Begin S.Write(LayerID,SizeOf(LayerID)); S.Write(ToolID,SizeOf(ToolID)); for i:=0 to MaxLayer-1 Do Begin Len := Length(ImportLayerName[i]); S.Write(Len, SizeOf(Len)); S.Write(PChar(ImportLayerName[i])^, Len); End; End;
Constructor TFilterConfigBase.Create(); Begin inherited; End;
Procedure TFilterConfigData.Load(s:TFileStream); Begin End;
Constructor TDxfImportFilterConfig.Create(); Begin inherited; FilterConfigData:=TdxfImportFilterConfigData.create(); End;
function TFilterConfigBase.LoadFromFile(name:String):Integer; var Stream: TFileStream; DataCount:Integer; Begin result:=-1; Stream := TFileStream.Create(name, fmOpenRead); Stream.Read(DataCount,Sizeof(DataCount)); if DataCount = 0 then exit; try FilterConfigData.Load(Stream); finally Stream.Free; end; end; function TFilterConfigBase.SaveToFile(name:String):Integer; var Stream: TFileStream; DataCount:Integer; Begin result:=-1; DataCount:=12345; Stream := TFileStream.Create(name, fmCreate); Stream.Write(DataCount,Sizeof(DataCount)); try FilterConfigData.Store(Stream); finally Stream.Free; end; end;
function TFilterConfigBase.Process:Integer; Begin End;
end. |