Changeset 7 for trunk/UDriveScan.pas
- Timestamp:
- Mar 30, 2016, 11:32:54 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UDriveScan.pas
r6 r7 6 6 7 7 uses 8 Classes, SysUtils, Syncobjs, UBlockMap, Forms, UConfig; 8 Classes, SysUtils, Syncobjs, UBlockMap, Forms, UConfig, DOM, XMLRead, XMLWrite, 9 UXMLUtils, Contnrs; 9 10 10 11 type … … 47 48 constructor Create; 48 49 destructor Destroy; override; 50 procedure SaveToNode(Node: TDOMNode); 51 procedure LoadFromNode(Node: TDOMNode); 49 52 property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate; 50 53 property OnChange: TNotifyEvent read FOnChange write FOnChange; 51 54 end; 52 55 56 { TDriveScanList } 57 58 TDriveScanList = class(TObjectList) 59 procedure SaveToNode(Node: TDOMNode); 60 procedure LoadFromNode(Node: TDOMNode); 61 end; 62 53 63 54 64 implementation … … 56 66 resourcestring 57 67 SUnknownRunMode = 'Unknown run mode'; 68 69 { TDriveScanList } 70 71 procedure TDriveScanList.SaveToNode(Node: TDOMNode); 72 var 73 I: Integer; 74 NewNode2: TDOMNode; 75 begin 76 for I := 0 to Count - 1 do 77 with TDriveScan(Items[I]) do begin 78 NewNode2 := Node.OwnerDocument.CreateElement('Scan'); 79 Node.AppendChild(NewNode2); 80 SaveToNode(NewNode2); 81 end; 82 end; 83 84 procedure TDriveScanList.LoadFromNode(Node: TDOMNode); 85 var 86 Node2: TDOMNode; 87 NewScan: TDriveScan; 88 begin 89 Count := 0; 90 Node2 := Node.FirstChild; 91 while Assigned(Node2) and (Node2.NodeName = 'Scan') do begin 92 NewScan := TDriveScan.Create; 93 NewScan.LoadFromNode(Node2); 94 Add(NewScan); 95 Node2 := Node2.NextSibling; 96 end; 97 end; 58 98 59 99 … … 174 214 end; 175 215 216 procedure TDriveScan.SaveToNode(Node: TDOMNode); 217 var 218 NewNode: TDOMNode; 219 begin 220 with Node do begin 221 WriteInteger(Node, 'DamagedBlockCount', DamagedBlockCount); 222 WriteInteger(Node, 'WritePattern', WritePattern); 223 WriteString(Node, 'DriveName', Drive); 224 225 NewNode := OwnerDocument.CreateElement('SectorMap'); 226 AppendChild(NewNode); 227 BlockMap.SaveToNode(NewNode); 228 end; 229 end; 230 231 procedure TDriveScan.LoadFromNode(Node: TDOMNode); 232 var 233 NewNode: TDOMNode; 234 begin 235 with Node do begin 236 DamagedBlockCount := ReadInteger(Node, 'DamagedBlockCount', 0); 237 WritePattern := ReadInteger(Node, 'WritePattern', 0); 238 Drive := ReadString(Node, 'DriveName', ''); 239 240 NewNode := FindNode('SectorMap'); 241 if Assigned(NewNode) then 242 BlockMap.LoadFromNode(NewNode); 243 end; 244 end; 176 245 177 246 end.
Note:
See TracChangeset
for help on using the changeset viewer.