Changeset 97 for trunk/Forms/UFormExport.pas
- Timestamp:
- Aug 22, 2016, 1:16:56 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormExport.pas
r96 r97 6 6 7 7 uses 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; 8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 9 UJobProgressView; 9 10 10 11 type … … 22 23 procedure FormCreate(Sender: TObject); 23 24 private 24 procedure ExportCSV; 25 procedure ExportMediaWiki; 26 procedure ExportMediaWikiTable; 25 ItemCount: Integer; 26 procedure JobExportCSV(Job: TJob); 27 procedure JobExportMediaWiki(Job: TJob); 28 procedure JobExportMediaWikiTable(Job: TJob); 27 29 public 28 30 { public declarations } … … 40 42 41 43 resourcestring 42 SExpotedAcronyms = 'Exported %d acronyms'; 44 SExportedAcronyms = 'Exported %d acronyms'; 45 SExporting = 'Exporting'; 43 46 44 47 { TFormExport } … … 59 62 end; 60 63 61 procedure TFormExport. ExportCSV;64 procedure TFormExport.JobExportCSV(Job: TJob); 62 65 var 63 66 I: Integer; 64 67 J: Integer; 65 ItemCount: Integer;68 Content: string; 66 69 begin 67 Memo1.Lines.Clear; 68 Memo1.Lines.BeginUpdate; 70 Job.Progress.Max := Core.AcronymDb.Acronyms.Count; 69 71 ItemCount := 0; 70 for I := 0 to Core.AcronymDb.Acronyms.Count - 1 do 71 with TAcronym(Core.AcronymDb.Acronyms[I]) do 72 for J := 0 to Meanings.Count - 1 do 73 with TAcronymMeaning(Meanings[J]) do begin 74 Memo1.Lines.Add('"' + Acronym.Name + '","' + Name + '","' + Description + '","' + Categories.GetString + '"'); 75 Inc(ItemCount); 76 end; 77 Memo1.Lines.EndUpdate; 78 ShowMessage(Format(SExpotedAcronyms, [ItemCount])); 79 end; 80 81 procedure TFormExport.ExportMediaWiki; 82 var 83 I: Integer; 84 J: Integer; 85 ItemCount: Integer; 86 begin 87 Memo1.Lines.Clear; 88 Memo1.Lines.BeginUpdate; 89 ItemCount := 0; 90 for I := 0 to Core.AcronymDb.Acronyms.Count - 1 do 91 with TAcronym(Core.AcronymDb.Acronyms[I]) do begin 92 Memo1.Lines.Add('; ' + Name); 93 for J := 0 to Meanings.Count - 1 do 94 with TAcronymMeaning(Meanings[J]) do begin 95 Memo1.Lines.Add(': ' + Name); 96 Inc(ItemCount); 97 end; 98 end; 99 Memo1.Lines.EndUpdate; 100 ShowMessage(Format(SExpotedAcronyms, [ItemCount])); 101 end; 102 103 procedure TFormExport.ExportMediaWikiTable; 104 var 105 I: Integer; 106 J: Integer; 107 ItemCount: Integer; 108 begin 109 Memo1.Lines.Clear; 110 Memo1.Lines.BeginUpdate; 111 ItemCount := 0; 112 Memo1.Lines.Add('{| class="wikitable sortable"'); 113 Memo1.Lines.Add('! Name !! Meaning !! Description !! Categories'); 72 Content := ''; 114 73 for I := 0 to Core.AcronymDb.Acronyms.Count - 1 do 115 74 with TAcronym(Core.AcronymDb.Acronyms[I]) do begin 116 75 for J := 0 to Meanings.Count - 1 do 117 76 with TAcronymMeaning(Meanings[J]) do begin 118 Memo1.Lines.Add('|-'); 119 Memo1.Lines.Add('| ' + Acronym.Name + ' || ' + Name + ' || ' + Description + ' || ' + Categories.GetString); 77 Content := Content + '"' + Acronym.Name + '","' + Name + '","' + Description + '","' + Categories.GetString + '"' + LineEnding; 120 78 Inc(ItemCount); 121 79 end; 80 Job.Progress.Increment; 81 if Job.Terminate then Break; 122 82 end; 123 Memo1.Lines.Add('|}'); 124 Memo1.Lines.EndUpdate; 125 ShowMessage(Format(SExpotedAcronyms, [ItemCount])); 83 Memo1.Lines.Text := Content; 84 end; 85 86 procedure TFormExport.JobExportMediaWiki(Job: TJob); 87 var 88 I: Integer; 89 J: Integer; 90 Content: string; 91 begin 92 Job.Progress.Max := Core.AcronymDb.Acronyms.Count; 93 ItemCount := 0; 94 Content := ''; 95 for I := 0 to Core.AcronymDb.Acronyms.Count - 1 do 96 with TAcronym(Core.AcronymDb.Acronyms[I]) do begin 97 Content := Content + '; ' + Name + LineEnding; 98 for J := 0 to Meanings.Count - 1 do 99 with TAcronymMeaning(Meanings[J]) do begin 100 Content := Content + ': ' + Name + LineEnding; 101 Inc(ItemCount); 102 end; 103 Job.Progress.Increment; 104 if Job.Terminate then Break; 105 end; 106 Memo1.Lines.Text := Content; 107 end; 108 109 procedure TFormExport.JobExportMediaWikiTable(Job: TJob); 110 var 111 I: Integer; 112 J: Integer; 113 Line: string; 114 Content: string; 115 begin 116 Job.Progress.Max := Core.AcronymDb.Acronyms.Count; 117 ItemCount := 0; 118 Content := '{| class="wikitable sortable"' + LineEnding + 119 '! Name !! Meaning !! Description !! Categories' + LineEnding; 120 for I := 0 to Core.AcronymDb.Acronyms.Count - 1 do 121 with TAcronym(Core.AcronymDb.Acronyms[I]) do begin 122 for J := 0 to Meanings.Count - 1 do 123 with TAcronymMeaning(Meanings[J]) do begin 124 Content := Content + '|-' + LineEnding + 125 '| ' + Acronym.Name + LineEnding + '| ' + Name + LineEnding + 126 '| ' + Description + LineEnding + '| ' + Categories.GetString + LineEnding; 127 Inc(ItemCount); 128 end; 129 Job.Progress.Increment; 130 if Job.Terminate then Break; 131 end; 132 Content := Content + '|}' + LineEnding; 133 Memo1.Lines.Text := Content; 126 134 end; 127 135 128 136 procedure TFormExport.ButtonProcessClick(Sender: TObject); 129 137 begin 130 if ComboBoxDataFormat.ItemIndex = 0 then ExportCSV; 131 if ComboBoxDataFormat.ItemIndex = 1 then ExportMediaWiki; 132 if ComboBoxDataFormat.ItemIndex = 2 then ExportMediaWikiTable; 138 if ComboBoxDataFormat.ItemIndex = 0 then 139 Core.JobProgressView1.AddJob(SExporting, JobExportCSV); 140 if ComboBoxDataFormat.ItemIndex = 1 then 141 Core.JobProgressView1.AddJob(SExporting, JobExportMediaWiki); 142 if ComboBoxDataFormat.ItemIndex = 2 then 143 Core.JobProgressView1.AddJob(SExporting, JobExportMediaWikiTable); 144 Core.JobProgressView1.Start; 145 ShowMessage(Format(SExportedAcronyms, [ItemCount])); 133 146 end; 134 147
Note:
See TracChangeset
for help on using the changeset viewer.