- Timestamp:
- Apr 13, 2026, 9:08:21 AM (2 weeks ago)
- Location:
- trunk
- Files:
-
- 13 added
- 11 edited
-
Ean.pas (modified) (1 diff)
-
EdcStats.lpi (modified) (2 diffs)
-
EdcStats.lpr (modified) (1 diff)
-
FormMain.lfm (modified) (3 diffs)
-
FormMain.lrj (modified) (1 diff)
-
FormMain.pas (modified) (8 diffs)
-
Languages/EdcStats.cs.po (modified) (3 diffs)
-
Languages/EdcStats.pot (modified) (2 diffs)
-
Packages/Common/XML.pas (modified) (2 diffs)
-
Packages/CoolStreaming (added)
-
Packages/CoolStreaming/BitStream.pas (added)
-
Packages/CoolStreaming/BufferedFileStream.pas (added)
-
Packages/CoolStreaming/CoolStreaming.lpk (added)
-
Packages/CoolStreaming/CoolStreaming.pas (added)
-
Packages/CoolStreaming/DynNumber.pas (added)
-
Packages/CoolStreaming/Languages (added)
-
Packages/CoolStreaming/Languages/VarBlockSerializer.cs.po (added)
-
Packages/CoolStreaming/Languages/VarBlockSerializer.pot (added)
-
Packages/CoolStreaming/StreamHelper.pas (added)
-
Packages/CoolStreaming/SubStream.pas (added)
-
Packages/CoolStreaming/TextFileStream.pas (added)
-
Packages/CoolStreaming/VarBlockSerializer.pas (added)
-
Packages/csvdocument/csvdocument.pas (modified) (1 diff)
-
Packages/csvdocument/csvdocument_package.lpk (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ean.pas
r3 r5 31 31 Number: string; 32 32 Owner: string; 33 DistributionTariff: string; 34 PriceLow: Double; 35 PriceHigh: Double; 36 PriceSpot: Double; 33 37 Values: TEanValues; 34 38 Kind: TEanKind; -
trunk/EdcStats.lpi
r1 r5 59 59 </CompilerOptions> 60 60 </Item> 61 <SharedMatrixOptions Count="2"> 62 <Item1 ID="360354175411" Targets="CoolStreaming,csvdocument,Common" Modes="Debug" Value="-g -gl -gh -CirotR -O1"/> 63 <Item2 ID="906254739821" Targets="CoolStreaming,csvdocument,Common" Modes="Release" Value="-CX -XX -O3"/> 64 </SharedMatrixOptions> 61 65 </BuildModes> 62 66 <PublishOptions> … … 68 72 </RunParams> 69 73 <RequiredPackages> 74 <Item> 75 <PackageName Value="CoolStreaming"/> 76 <DefaultFilename Value="Packages/CoolStreaming/CoolStreaming.lpk" Prefer="True"/> 77 </Item> 70 78 <Item> 71 79 <PackageName Value="Common"/> -
trunk/EdcStats.lpr
r1 r5 9 9 {$ENDIF} 10 10 Interfaces, // this includes the LCL widgetset 11 Forms, tachartlazaruspkg, FormMain, csvdocument_package, Ean, CommonPackage 11 Forms, tachartlazaruspkg, FormMain, csvdocument_package, Ean, CommonPackage, 12 CoolStreaming 12 13 { you can add units after this }; 13 14 -
trunk/FormMain.lfm
r4 r5 1 1 object FormMain: TFormMain 2 Left = 37 72 Left = 372 3 3 Height = 884 4 Top = 3 714 Top = 366 5 5 Width = 1203 6 6 Caption = 'EDC Stats' … … 27 27 Top = 64 28 28 Width = 1176 29 ActivePage = TabSheet Chart29 ActivePage = TabSheetOverview 30 30 Anchors = [akTop, akLeft, akRight, akBottom] 31 TabIndex = 231 TabIndex = 0 32 32 TabOrder = 1 33 33 object TabSheetOverview: TTabSheet … … 62 62 item 63 63 Caption = 'Shared [%]' 64 Width = 63564 Width = 100 65 65 end 66 66 item 67 67 Caption = 'Kind' 68 Width = 100 69 end 70 item 71 Caption = 'Low price' 72 Width = 100 73 end 74 item 75 Caption = 'High price' 76 Width = 100 77 end 78 item 79 Caption = 'Spot price' 80 Width = 135 68 81 end> 69 82 ReadOnly = True -
trunk/FormMain.lrj
r4 r5 9 9 {"hash":145998637,"name":"tformmain.listview1.columns[4].caption","sourcebytes":[83,104,97,114,101,100,32,91,37,93],"value":"Shared [%]"}, 10 10 {"hash":335940,"name":"tformmain.listview1.columns[5].caption","sourcebytes":[75,105,110,100],"value":"Kind"}, 11 {"hash":158850293,"name":"tformmain.listview1.columns[6].caption","sourcebytes":[76,111,119,32,112,114,105,99,101],"value":"Low price"}, 12 {"hash":175333445,"name":"tformmain.listview1.columns[7].caption","sourcebytes":[72,105,103,104,32,112,114,105,99,101],"value":"High price"}, 13 {"hash":108144885,"name":"tformmain.listview1.columns[8].caption","sourcebytes":[83,112,111,116,32,112,114,105,99,101],"value":"Spot price"}, 11 14 {"hash":21335,"name":"tformmain.tabsheetlog.caption","sourcebytes":[76,111,103],"value":"Log"}, 12 15 {"hash":4843668,"name":"tformmain.tabsheetchart.caption","sourcebytes":[67,104,97,114,116],"value":"Chart"}, -
trunk/FormMain.pas
r4 r5 7 7 EditBtn, TAGraph, TASeries, Generics.Collections, Generics.Defaults, 8 8 DateUtils, Ean, Translator, ApplicationInfo, RegistryEx, PersistentForm, 9 Theme, Common ;9 Theme, Common, XML, DOM, XMLRead, XMLWrite; 10 10 11 11 type … … 110 110 111 111 uses 112 csvdocument ;112 csvdocument, BufferedFileStream; 113 113 114 114 resourcestring … … 124 124 SMonth = 'Month'; 125 125 SYear = 'Year'; 126 SWrongFileFormat = 'Wrong file format'; 126 127 127 128 { TFormMain } … … 140 141 141 142 Reports := TStringList.Create; 142 SearchFiles(Reports, ReportsDir, FileNameFilter); 143 for I := 0 to Reports.Count - 1 do 144 LoadEdcReport(Reports[I]); 145 Reports.Free; 143 try 144 SearchFiles(Reports, ReportsDir, FileNameFilter); 145 for I := 0 to Reports.Count - 1 do 146 LoadEdcReport(Reports[I]); 147 finally 148 Reports.Free; 149 end; 146 150 147 151 for I := 0 to Eans.Count - 1 do … … 151 155 CreateEan('', STotalConsumtion, ekConsumption); 152 156 153 IntervalTo := Eans[0].Values.Last.Time + 15 * OneMinute; 157 if (Eans.Count > 0) and (Eans[0].Values.Count > 0) then 158 IntervalTo := Eans[0].Values.Last.Time + 15 * OneMinute; 154 159 UpdateInterval; 155 160 UpdateInterface; … … 356 361 try 357 362 ListView1.Items.Clear; 358 for I := 0 to Eans.Count - 1 do begin 363 for I := 0 to Eans.Count - 1 do 364 with Eans[I] do begin 359 365 ListItem := ListView1.Items.Add; 360 ListItem.Caption := Eans[I].Number; 361 ListItem.SubItems.Add(Eans[I].Owner); 362 ListItem.SubItems.Add(MeasureToStr(Eans[I].GetTotalIn(IntervalFrom, IntervalTo))); 363 ListItem.SubItems.Add(MeasureToStr(Eans[I].GetTotalOut(IntervalFrom, IntervalTo))); 364 ListItem.SubItems.Add(IntToStr(Trunc(Eans[I].GetShared(IntervalFrom, IntervalTo)))); 365 ListItem.SubItems.Add(EanKindText[Eans[I].Kind]); 366 ListItem.Caption := Number; 367 ListItem.SubItems.Add(Owner); 368 ListItem.SubItems.Add(MeasureToStr(GetTotalIn(IntervalFrom, IntervalTo))); 369 ListItem.SubItems.Add(MeasureToStr(GetTotalOut(IntervalFrom, IntervalTo))); 370 ListItem.SubItems.Add(IntToStr(Trunc(GetShared(IntervalFrom, IntervalTo)))); 371 ListItem.SubItems.Add(EanKindText[Kind]); 372 ListItem.SubItems.Add(FloatToStr(PriceLow)); 373 ListItem.SubItems.Add(FloatToStr(PriceHigh)); 374 ListItem.SubItems.Add(FloatToStr(PriceSpot)); 366 375 end; 367 376 finally … … 397 406 procedure TFormMain.LoadOwners(FileName: string); 398 407 var 399 Owners: TStringList;400 408 Ean: TEan; 401 I: Integer; 402 begin 403 Owners := TStringList.Create; 404 Owners.LoadFromFile(FileName); 409 Doc: TXMLDocument; 410 RootNode: TDOMNode; 411 NewNode: TDOMNode; 412 Node2: TDOMNode; 413 const 414 EdcProjectName = 'EdcProject'; 415 EansName = 'Eans'; 416 EanName = 'Ean'; 417 begin 418 ReadXMLFile(Doc, FileName); 405 419 Eans.Clear; 406 for I := 0 to Owners.Count - 1 do begin 407 Ean := TEan.Create; 408 Ean.Number := Owners.Names[I]; 409 Ean.Owner := Owners.ValueFromIndex[I]; 410 Eans.Add(Ean); 411 end; 412 Owners.Free; 420 with Doc do 421 try 422 if Doc.DocumentElement.NodeName <> EdcProjectName then 423 raise Exception.Create(SWrongFileFormat); 424 RootNode := Doc.DocumentElement; 425 426 NewNode := RootNode.FindNode(EansName); 427 if Assigned(NewNode) then begin 428 Node2 := NewNode.FirstChild; 429 while Assigned(Node2) and (Node2.NodeName = EanName) do begin 430 Ean := TEan.Create; 431 Ean.Number := ReadString(Node2, 'Number', ''); 432 Ean.Owner := ReadString(Node2, 'Owner', ''); 433 Ean.DistributionTariff := ReadString(Node2, 'DistributionTariff', ''); 434 Ean.PriceLow := ReadDouble(Node2, 'PriceLow', 0); 435 Ean.PriceHigh := ReadDouble(Node2, 'PriceHigh', 0); 436 Ean.PriceSpot := ReadDouble(Node2, 'PriceSpot', 0); 437 Eans.Add(Ean); 438 Node2 := Node2.NextSibling; 439 end; 440 end; 441 finally 442 FreeAndNil(Doc); 443 end; 413 444 end; 414 445 … … 425 456 EanKind: TEanKind; 426 457 Number: string; 458 BufferedFileStream: TBufferedFileStream; 427 459 begin 428 460 CSVDoc := TCSVDocument.Create; 429 461 try 430 462 CSVDoc.Delimiter := ';'; 463 //BufferedFileStream := TBufferedFileStream.Create(FileName, fmOpenRead); 464 //CSVDoc.LoadFromStream(BufferedFileStream); 431 465 CSVDoc.LoadFromFile(FileName); 466 //BufferedFileStream.Free; 432 467 433 468 for C := 0 to ((CSVDoc.ColCount[0] - 3) div 2) - 1 do begin -
trunk/Languages/EdcStats.cs.po
r4 r5 64 64 msgid "Week" 65 65 msgstr "Týden" 66 67 #: formmain.swrongfileformat 68 msgid "Wrong file format" 69 msgstr "" 66 70 67 71 #: formmain.syear … … 150 154 msgstr "Druh" 151 155 156 #: tformmain.listview1.columns[6].caption 157 msgid "Low price" 158 msgstr "" 159 160 #: tformmain.listview1.columns[7].caption 161 msgid "High price" 162 msgstr "" 163 164 #: tformmain.listview1.columns[8].caption 165 msgid "Spot price" 166 msgstr "" 167 152 168 #: tformmain.listview2.columns[0].caption 153 169 msgctxt "tformmain.listview2.columns[0].caption" … … 181 197 msgid "Overview" 182 198 msgstr "Přehled" 199 -
trunk/Languages/EdcStats.pot
r4 r5 53 53 #: formmain.sweek 54 54 msgid "Week" 55 msgstr "" 56 57 #: formmain.swrongfileformat 58 msgid "Wrong file format" 55 59 msgstr "" 56 60 … … 140 144 msgstr "" 141 145 146 #: tformmain.listview1.columns[6].caption 147 msgid "Low price" 148 msgstr "" 149 150 #: tformmain.listview1.columns[7].caption 151 msgid "High price" 152 msgstr "" 153 154 #: tformmain.listview1.columns[8].caption 155 msgid "Spot price" 156 msgstr "" 157 142 158 #: tformmain.listview2.columns[0].caption 143 159 msgctxt "tformmain.listview2.columns[0].caption" -
trunk/Packages/Common/XML.pas
r1 r5 26 26 implementation 27 27 28 var 29 XmlFormatSettings: TFormatSettings = ( 30 CurrencyFormat: 1; 31 NegCurrFormat: 5; 32 ThousandSeparator: ','; 33 DecimalSeparator: '.'; 34 CurrencyDecimals: 2; 35 DateSeparator: '-'; 36 TimeSeparator: ':'; 37 ListSeparator: ','; 38 CurrencyString: '$'; 39 ShortDateFormat: 'd/m/y'; 40 LongDateFormat: 'dd" "mmmm" "yyyy'; 41 TimeAMString: 'AM'; 42 TimePMString: 'PM'; 43 ShortTimeFormat: 'hh:nn'; 44 LongTimeFormat: 'hh:nn:ss'; 45 ShortMonthNames: ('Jan','Feb','Mar','Apr','May','Jun', 46 'Jul','Aug','Sep','Oct','Nov','Dec'); 47 LongMonthNames: ('January','February','March','April','May','June', 48 'July','August','September','October','November','December'); 49 ShortDayNames: ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); 50 LongDayNames: ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'); 51 TwoDigitYearCenturyWindow: 50; 52 ); 53 28 54 function ReadDouble(Node: TDOMNode; Name: string; DefaultValue: Double): Double; 29 55 var … … 33 59 NewNode := Node.FindNode(DOMString(Name)); 34 60 if Assigned(NewNode) then 35 Result := StrToFloat(string(NewNode.TextContent) );61 Result := StrToFloat(string(NewNode.TextContent), XmlFormatSettings); 36 62 end; 37 63 -
trunk/Packages/csvdocument/csvdocument.pas
r1 r5 93 93 94 94 // Sequential input from CSV stream 95 96 { TCSVParser } 97 95 98 TCSVParser = class(TCSVHandler) 96 99 private -
trunk/Packages/csvdocument/csvdocument_package.lpk
r1 r5 1 <?xml version="1.0" ?>1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <CONFIG> 3 <Package Version=" 3">3 <Package Version="5"> 4 4 <PathDelim Value="\"/> 5 5 <Name Value="csvdocument_package"/> 6 <AddToProjectUsesSection Value="True"/> 6 7 <Author Value="Vladimir Zhirov"/> 7 8 <CompilerOptions> 8 <Version Value="1 0"/>9 <Version Value="11"/> 9 10 <PathDelim Value="\"/> 10 11 <SearchPaths> 11 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS) "/>12 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 12 13 </SearchPaths> 13 14 <Parsing> 14 15 <SyntaxOptions> 16 <SyntaxMode Value="Delphi"/> 15 17 <CStyleOperator Value="False"/> 18 <AllowLabel Value="False"/> 19 <CPPInline Value="False"/> 16 20 </SyntaxOptions> 17 21 </Parsing> 18 22 <CodeGeneration> 19 23 <SmartLinkUnit Value="True"/> 20 <Checks>21 <IOChecks Value="True"/>22 <RangeChecks Value="True"/>23 <OverflowChecks Value="True"/>24 <StackChecks Value="True"/>25 </Checks>26 24 <Optimizations> 27 <OptimizationLevel Value=" 2"/>25 <OptimizationLevel Value="0"/> 28 26 </Optimizations> 29 27 </CodeGeneration> 30 28 <Linking> 31 29 <Debugging> 30 <GenerateDebugInfo Value="False"/> 32 31 <UseLineInfoUnit Value="False"/> 33 32 </Debugging> 34 33 </Linking> 35 <Other>36 <CustomOptions Value="-al"/>37 <CompilerPath Value="$(CompPath)"/>38 </Other>39 34 </CompilerOptions> 40 35 <Description Value="CsvDocument library is a unit contaning set of classes for CSV files handling."/> … … 47 42 </Item1> 48 43 </Files> 44 <CompatibilityMode Value="True"/> 49 45 <RequiredPkgs Count="1"> 50 46 <Item1>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/edc-stats/chrome/site/your_project_logo.png)