Changeset 7 for trunk/EdcProject.pas


Ignore:
Timestamp:
Apr 13, 2026, 7:11:03 PM (2 weeks ago)
Author:
chronos
Message:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EdcProject.pas

    r6 r7  
    55uses
    66  Classes, SysUtils, Generics.Collections, Generics.Defaults, XML, DateUtils,
    7   fphttpclient, opensslsockets, Ean, DOM, XMLRead, XMLWrite, Common, CsvDocument,
     7  Ean, DOM, XMLRead, XMLWrite, Common, CsvDocument,
    88  SpotPrice;
    99
     
    4848  I: Integer;
    4949begin
     50  for I := 0 to Eans.Count - 1 do
     51    Eans[I].Values.Clear;
     52
    5053  Reports := TStringList.Create;
    5154  try
     
    5962  for I := 0 to Eans.Count - 1 do
    6063    Eans[I].Values.Sort(TComparer<TEanValue>.Construct(Eans[I].Values.Comparer));
     64
    6165
    6266  CreateEan('', STotalSupply, ekSupply);
     
    102106    AppendChild(RootNode);
    103107
    104     NewNode := RootNode.OwnerDocument.CreateElement(EansName);
    105     RootNode.AppendChild(NewNode);
    106     Eans.SaveToXmlNode(NewNode);
    107 
    108     NewNode := RootNode.OwnerDocument.CreateElement(SpotPricesName);
    109     RootNode.AppendChild(NewNode);
    110     SpotPrices.SaveToXmlNode(NewNode);
     108    if Eans.Count > 0 then begin
     109      NewNode := RootNode.OwnerDocument.CreateElement(EansName);
     110      RootNode.AppendChild(NewNode);
     111      Eans.SaveToXmlNode(NewNode);
     112    end;
     113
     114    if SpotPrices.Count > 0 then begin
     115      NewNode := RootNode.OwnerDocument.CreateElement(SpotPricesName);
     116      RootNode.AppendChild(NewNode);
     117      SpotPrices.SaveToXmlNode(NewNode);
     118    end;
    111119
    112120    if ExtractFileDir(FileName) <> '' then
     
    136144  C: Integer;
    137145  CSVDoc: TCSVDocument;
     146  Date: TDateTime;
    138147  TimeFrom: TDateTime;
    139148  TimeTo: TDateTime;
     
    147156  try
    148157    CSVDoc.Delimiter := ';';
    149     //BufferedFileStream := TBufferedFileStream.Create(FileName, fmOpenRead);
    150     //CSVDoc.LoadFromStream(BufferedFileStream);
    151158    CSVDoc.LoadFromFile(FileName);
    152     //BufferedFileStream.Free;
    153159
    154160    for C := 0 to ((CSVDoc.ColCount[0] - 3) div 2) - 1 do begin
     
    172178      Ean.Kind := EanKind;
    173179
     180      Ean.Values.Capacity := Ean.Values.Count + CSVDoc.RowCount;
     181
    174182      for R := 1 to CSVDoc.RowCount - 1 do begin
    175         TimeFrom := StrToDate(CSVDoc.Cells[0, R]) + StrToTime(CSVDoc.Cells[1, R]);
    176         TimeTo := StrToDate(CSVDoc.Cells[0, R]) + StrToTime(CSVDoc.Cells[2, R]);
     183        Date := StrToDate(CSVDoc.Cells[0, R]);
     184        TimeFrom := Date + StrToTime(CSVDoc.Cells[1, R]);
     185        TimeTo := Date + StrToTime(CSVDoc.Cells[2, R]);
    177186
    178187        CellValueIn := 0;
     
    203212  Value: TEanValue;
    204213begin
    205   Ean := TEan.Create;
    206   Ean.Number := Number;
    207   Ean.Owner := Owner;
    208   Ean.Kind := Kind;
     214  Ean := Eans.SearchByOwner(Owner);
     215  if not Assigned(Ean) then begin
     216    Ean := TEan.Create;
     217    Ean.Number := Number;
     218    Ean.Owner := Owner;
     219    Ean.Kind := Kind;
     220    Eans.Add(Ean);
     221  end;
     222
     223  Ean.Values.Clear;
    209224
    210225  Values := TDictionary<TDateTime, TEanValue>.Create;
     
    223238
    224239  ValuesArray := Values.ToArray;
     240  Ean.Values.Capacity := Values.Count;
    225241  for I := 0 to Values.Count - 1 do begin
    226242    Ean.Values.Add(TEanValue.Create(ValuesArray[I].Key, ValuesArray[I].Value.ValueIn, ValuesArray[I].Value.ValueOut));
     
    229245
    230246  Values.Free;
    231 
    232   Eans.Add(Ean);
    233247end;
    234248
Note: See TracChangeset for help on using the changeset viewer.