AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Werte in Array verschieben, funktioniert nicht richtig
Thema durchsuchen
Ansicht
Themen-Optionen

Werte in Array verschieben, funktioniert nicht richtig

Ein Thema von BAMatze · begonnen am 12. Aug 2009 · letzter Beitrag vom 12. Aug 2009
 
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Werte in Array verschieben, funktioniert nicht richtig

  Alt 12. Aug 2009, 08:39
Hallo und guten Morgen,

Hab da ein kleines Problem mit meiner eigenen Logik. Also ich habe ein Array mit Werten drin. Es kommen periodisch neue Werte hinzu (diese packe ich auf die letzte Stelle). Dafür soll der erste Wert es Arrays verschwinden. Habe das so programmiert (und denke ich hab irgendwie einen ziemlich simplen Fehler eingebaut, den ich aber irgendwie nicht sehe).

Hier mal die 2 Proceduren, die ich dafür verwende:

Delphi-Quellcode:
procedure TOszilloskopKanal.movedArray(temparray: array of double);
var i: integer;
begin
  // Das Array wird durchlaufen und es wird immer der Nachfolger auf den Vorgänger gesetzt.
  for i := 0 to Length(temparray)-2 do temparray[i] := temparray[i+1];
end;

// Es werden immer nur die letzen Werte gesetzt
procedure TOszilloskopKanal.SetYWert(dWert: double);
begin
  // Wenn ein Wert im Eingang reinkommt, werden zuerst
  // die Werte im Array verschoben,
  movedArray(FadyWert);
  // dass letzte Element, was nach dem Verschieben "frei" wird (effektiv sitzt dort immer noch der gleiche Wert drin, wie vor der ArrayWert-Verschiebung, aber dieser wurde ja schon auf das Vorletzte Feld kopiert.
  FadyWert[FiYmax] := dWert; //FiYMax = Maximale Anzahl an Y-Werten
  // Und es wird nach außen signalisiert, dass etwas am Eingang geschehen ist (dies soll für das Zeichnen den Timer sparen und die Performance verbessern)
  doChangeEingang;
end;
Hab das mal versucht so gut es geht zu kommentieren, damit ihr auch meinen Gedankengang verfolgen könnt. Problem ist wie gesagt, der Gedankengang stimmt nicht mit dem Ergebnis überein. Im Ergebnis erhält der vorletzte Array Wert nie den Wert des letzten (also muss etwas in der ArrayWert-Verschiebung wohl fehl gehen).

Vielen Dank
BAMatze
2. Account Sero
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.
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 by Thomas Breitkreuz