Changeset 10 for trunk/SpotPrice.pas
- Timestamp:
- Apr 15, 2026, 9:35:17 AM (2 weeks ago)
- File:
-
- 1 edited
-
trunk/SpotPrice.pas (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/SpotPrice.pas
r9 r10 26 26 procedure LoadSpotReport(FileName: string); 27 27 public 28 procedure ClearInterval(IntervalFrom, IntervalTo: TDateTime); 28 29 function GetBlock(var Text: string; StartText, EndText: string): string; 29 procedure LoadSpotPricesFromWeb(Date: TDate); 30 procedure LoadFromWebDate(Date: TDate); 31 procedure LoadFromWeb; 30 32 procedure Import(Directory: string); 31 33 procedure LoadFromXmlNode(Node: TDOMNode); 32 34 procedure SaveToXmlNode(Node: TDOMNode); 33 function SearchByTime(Time: TDateTime): TSpotPrice;35 function SearchByTime(Time: TDateTime): Integer; 34 36 end; 35 37 … … 62 64 end; 63 65 64 procedure TSpotPrices.Load SpotPricesFromWeb(Date: TDate);66 procedure TSpotPrices.LoadFromWebDate(Date: TDate); 65 67 var 66 68 URL: string; … … 73 75 Value: Double; 74 76 begin 75 Clear; 77 ClearInterval(Date, Date + 1); 78 76 79 URL := 'https://spotovaelektrina.cz/denni-ceny/' + DateToStr(Date, XmlFormatSettings); 77 80 with TFPHttpClient.Create(nil) do … … 102 105 end; 103 106 107 procedure TSpotPrices.LoadFromWeb; 108 var 109 I: Integer; 110 begin 111 for I := 1 to 15 do 112 LoadFromWebDate(StrToDate(IntToStr(I) + '.4.2026')); 113 114 Sort(TComparer<TSpotPrice>.Construct(Comparer)); 115 end; 116 104 117 function TSpotPrices.FileNameFilter(FileName: string): Boolean; 105 118 begin … … 134 147 end; 135 148 149 procedure TSpotPrices.ClearInterval(IntervalFrom, IntervalTo: TDateTime); 150 var 151 I: Integer; 152 begin 153 for I := Count - 1 downto 0 do 154 if (Items[I].Time >= IntervalFrom) and (Items[I].Time < IntervalTo) then 155 Delete(I); 156 end; 157 136 158 procedure TSpotPrices.Import(Directory: string); 137 159 var … … 178 200 end; 179 201 180 function TSpotPrices.SearchByTime(Time: TDateTime): TSpotPrice;202 function TSpotPrices.SearchByTime(Time: TDateTime): Integer; 181 203 var 182 204 I: Integer; … … 184 206 I := 0; 185 207 while (I < Count) and (Items[I].Time <> Time) do Inc(I); 186 if I < Count then Result := I tems[I]187 else Result := TSpotPrice.Create(0, 0);208 if I < Count then Result := I 209 else Result := -1; 188 210 end; 189 211
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)