Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Moving Average (https://www.delphipraxis.net/119366-moving-average.html)

fl63 4. Sep 2008 10:45

Re: Moving Average
 
Hallo Marabu,
Bei der Version ohne = erscheint bei meinem Testdurchschnit(5er) bereits in der vierten Zeile ein Ergebnis. Wie wir uns bereits geeinigt haben muß bei einem 5er Durchschnitt das erste Ergebnis in der 5ten Zeile stehen.
Bei der Vesion mit = funktioniert alles korrekt.

Leider habe ich noch immer Probleme den Skip Wert in die Procedure Data to Strings einzufügen. Ich komme dabei zu keinem vernünftigen Ergebnis.
Vielleicht hilfst du mir noch mal dabei.

marabu 4. Sep 2008 17:30

Re: Moving Average
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe dir eine Demo zum Studium angehängt. Mit dem Einfügen des Gleichheitszeichens korrigierst du nach meiner Einschätzung einen Fehler, den du an anderer Stelle machst.

Freundliche Grüße

fl63 6. Sep 2008 11:49

Re: Moving Average
 
Hallo Marabu,
Also den Skip so einzubinden hätte ich in 1000Jahren nicht geschafft. Die Hoffnung, daß durch die korrekte Einbindung des Skips die Spaltenüberschrift erhalten bleibt ist leider dahin. Ich werd sie dann wohl nachträglich wieder hinzufügen. Dennoch Danke für Deine Hilfe.
Wochenendgrüße fl63

marabu 6. Sep 2008 14:25

Re: Moving Average
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

die Demo aus meinem vorigen Beitrag sollte dir nur verdeutlichen, dass das von dir eingefügte Gleichheitszeichen keine Korrektur meines Codes ist, sondern ein Symptom deines eigenen Codes kuriert. Die Erhaltung von Spalten- und Zeilenüberschriften zeigt eine weitere Demo im Anhang. Den gewünschten Effekt erreiche ich durch kleine Änderungen an der Prozedur DataToStrings():

Delphi-Quellcode:
procedure DataToStrings(data: TDoubleDynArray; strings: TStrings;
    skip: Word = 0; const fmt: string = '%f');
var
  i: Integer;
begin
  for i := Low(data) to High(data) do
    if IsZero(Data[i])
      then strings[i + skip] := ''
      else strings[i + skip] := Format(fmt, [Data[i]]);
end;
Ich verzichte auf strings.Clear und überschreibe nur noch die notwendigen Zellen.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz