Repository navigation
Expand file tree
/
Copy pathSystem.MHT.RecordingXMLToFile.pas
More file actions
92 lines (73 loc) · 2.36 KB
/
Copy pathSystem.MHT.RecordingXMLToFile.pas
File metadata and controls
92 lines (73 loc) · 2.36 KB
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
unit System.MHT.RecordingXMLToFile;
interface
uses
System.MHT.RecordingXML;
type
IMHTRecordingXmlToFile = interface(IInvokable)
['{FE5B3532-CF06-43E1-9834-AA92D1D64987}']
function RecordEachAction(): TArray<TEachAction>; overload;
function RecordEachAction(Value: TArray<TEachAction>): IMHTRecordingXmlToFile; overload;
function Filename(): string; overload;
function Filename(const Value: string): IMHTRecordingXmlToFile; overload;
procedure SaveToCSV();
end;
TMHTRecordingXmlToFile = class(TInterfacedObject, IMHTRecordingXmlToFile)
strict private
FEachAction: TArray<TEachAction>;
FFilename: string;
public
function RecordEachAction(): TArray<TEachAction>; overload;
function RecordEachAction(Value: TArray<TEachAction>): IMHTRecordingXmlToFile; overload;
function Filename(): string; overload;
function Filename(const Value: string): IMHTRecordingXmlToFile; overload;
procedure SaveToCSV();
end;
implementation
uses
System.SysUtils,
System.IOUtils;
{ TMHTRecordingXmlToFile }
function TMHTRecordingXmlToFile.RecordEachAction: TArray<TEachAction>;
begin
Result := FEachAction;
end;
function TMHTRecordingXmlToFile.Filename(const Value: string): IMHTRecordingXmlToFile;
begin
FFilename := Value;
Result := Self;
end;
function TMHTRecordingXmlToFile.Filename: string;
begin
Result := FFilename;
end;
function TMHTRecordingXmlToFile.RecordEachAction(Value: TArray<TEachAction>): IMHTRecordingXmlToFile;
begin
FEachAction := Value;
Result := Self;
end;
procedure TMHTRecordingXmlToFile.SaveToCSV;
var
CsvContent: string;
InnerPath: string;
begin
CsvContent := 'ActionNumber;Time;FileVersion;FileName;CommandLine;Action;ScreenshotFileName;Description' + sLineBreak;
for var Item: TEachAction in FEachAction do
begin
CsvContent := CsvContent
+ Format('%d;%s;%s;%s;%s;%s;%s;%s',
[Item.ActionNumber,
Item.Time,
Item.FileVersion,
Item.FileName,
Item.CommandLine,
Item.Action,
Item.ScreenshotFileName,
Item.Description])
+ sLineBreak;
end;
InnerPath := TPath.GetDirectoryName(FFilename);
if (not TDirectory.Exists(InnerPath)) then
TDirectory.CreateDirectory(InnerPath);
TFile.WriteAllText(FFilename, CsvContent);
end;
end.