Changeset 7 for trunk/UProject.pas
- Timestamp:
- Mar 30, 2016, 11:32:54 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UProject.pas
r2 r7 6 6 7 7 uses 8 Classes, SysUtils ;8 Classes, SysUtils, Contnrs, DOM, XMLRead, XMLWrite, UXMLUtils, UDriveScan; 9 9 10 10 type … … 20 20 SectorCount: Integer; 21 21 Modified: Boolean; 22 Scans: TDriveScanList; 22 23 constructor Create; 24 destructor Destroy; override; 25 procedure LoadFromFile(FileName: string); 26 procedure SaveToFile(FileName: string); 23 27 end; 24 28 29 25 30 implementation 31 32 resourcestring 33 SWrongFileFormat = 'Wrong file format'; 34 26 35 27 36 { TProject } … … 30 39 begin 31 40 SectorSize := 4096; 41 Scans := TDriveScanList.Create; 32 42 end; 43 44 destructor TProject.Destroy; 45 begin 46 FreeAndNil(Scans); 47 inherited Destroy; 48 end; 49 50 procedure TProject.SaveToFile(FileName: string); 51 var 52 NewNode: TDOMNode; 53 Doc: TXMLDocument; 54 RootNode: TDOMNode; 55 begin 56 Self.FileName := FileName; 57 Doc := TXMLDocument.Create; 58 with Doc do try 59 RootNode := CreateElement('CoolDiskProject'); 60 AppendChild(RootNode); 61 with RootNode do begin 62 WriteInteger(RootNode, 'SectorSize', SectorSize); 63 64 NewNode := OwnerDocument.CreateElement('Scans'); 65 AppendChild(NewNode); 66 Scans.SaveToNode(NewNode); 67 end; 68 ForceDirectories(ExtractFileDir(FileName)); 69 WriteXMLFile(Doc, FileName); 70 finally 71 Doc.Free; 72 end; 73 end; 74 75 procedure TProject.LoadFromFile(FileName: string); 76 var 77 Doc: TXMLDocument; 78 RootNode: TDOMNode; 79 NewNode: TDOMNode; 80 begin 81 Self.FileName := FileName; 82 ReadXMLFile(Doc, FileName); 83 with Doc do try 84 if Doc.DocumentElement.NodeName <> 'CoolDiskProject' then 85 raise Exception.Create(SWrongFileFormat); 86 RootNode := Doc.DocumentElement; 87 with RootNode do begin 88 SectorSize := ReadInteger(RootNode, 'SectorSize', 4096); 89 90 NewNode := FindNode('Scans'); 91 if Assigned(NewNode) then 92 Scans.LoadFromNode(NewNode); 93 end; 94 finally 95 Doc.Free; 96 end; 97 end; 98 33 99 34 100 end.
Note:
See TracChangeset
for help on using the changeset viewer.