AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array Probleme

Ein Thema von Chris211183 · begonnen am 8. Apr 2015 · letzter Beitrag vom 10. Apr 2015
Antwort Antwort
Seite 1 von 2  1 2   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.203 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Array Probleme

  Alt 9. Apr 2015, 10:10
Ich ignoriere Klaus, der relativ komplexe Sachen wie "wartest bist dein Array gefüllt ist" mit einem Halbsatz abfrühstückt, einfach mal und sage nur was über Array Grundlagen:

Ich möchte erst einmal einen Array haben, der mit beliebig vielen "Daten" gefüllt werden kann.
Es gibt zwei verschiedene Arten von Arrays: Statische und dynamische. Bei statischen gibst du an, von wo bis wo:
Delphi-Quellcode:
var
   meinZwölferArray: array[0..11] of Integer;
In das Array passen genau 12 Integer rein. Mavarik ist glaub ich ein Fan von den Dingern, ich habe die in meinem Leben noch nie benutzt.

Die zweite Möglichkeit sind dynamische Arrays: Die sind gut für dich, denn die können so groß werden bis dein Speicher voll ist. Da lässt man die expliziten Größenangaben einfach weg:
Delphi-Quellcode:
var
   meinIntegerArray: array of Integer;
Nach der Deklaration hat das dynamische Array erst einmal die Größe Null. Es passen keine Elemente hinein. Wenn nun 500 Integer hineinpassen sollen musst du sagen SetLength(meinIntegerArray, 500); Sagen wir die Integer-Werte stellen einen Absolutwert da (Y-Achse). Der Index (die wievielte Stelle im Array) ist der Wert auf der X-Achse. Um jetzt alle Werte zu nehmen und auszugeben, gehst du so drüber:
Delphi-Quellcode:
var
   meinIntegerArray: array of Integer;
   arrayIndex:   Integer;
begin
   SetLength(meinIntegerArray, 10);
   for arrayIndex := Low(meinIntegerArray) to High(meinIntegerArray) do
      ShowMessage( IntToStr(meinIntegerArray[arrayIndex]) );


Erstmal: Alles klar soweit in Sachen Arrays?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.663 Beiträge
 
Delphi 12 Athens
 
#2

AW: Array Probleme

  Alt 9. Apr 2015, 10:14
Etwas ausführlicher (Englisch): http://delphibasics.co.uk/Article.asp?Name=Arrays
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#3

AW: Array Probleme

  Alt 9. Apr 2015, 10:15
Ahhhhhhh

Ich wurde erleuchtet, ja das beantwortet meine Frage fürs erste, werde mich mal dran versuchen !

Besten Dank an Alle !
Christian
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Array Probleme

  Alt 9. Apr 2015, 10:29
Aber nur fürs Erste. Wenn du das Bild aufbauen möchtest muß man schon noch bissl mehr wissen: Bildgröße und die Max/Min-Werte von X und Y.
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#5

AW: Array Probleme

  Alt 9. Apr 2015, 10:48
Aber nur fürs Erste. Wenn du das Bild aufbauen möchtest muß man schon noch bissl mehr wissen: Bildgröße und die Max/Min-Werte von X und Y.
Die Bildgröße ermittle ich ja in der CalculatePointView Routine, die Max und Min Werte sind doch meine Maximalen und Minimalen Skalen-Werte, also YMax, YMin, XMax und XMin

Meine "Daten" die dargestellt werden, sollen den Rückgabewert Real haben...
Meine Skalenwerte sind Double...

wie würdet ihr dann weiter vorgehen ?
Christian
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Array Probleme

  Alt 9. Apr 2015, 10:59
.. Du hast 40000 Messwerte pro Sekunde bei einer 40Khz Abtastrate.
Diese Werte kannst Du wahrscheinlich nicht einzeln auf einem Bildschirm darstellen.
Daher musst Du diese, wie schon einmal gesagt, interpolieren.

Wenn Du eine Sekunde mit einer Fenstergröße/breite von 1000 Punkten darstellen willst:
Dann musst Du aus 40 Messwerten einen errechnen.
40000 / 40 = 1000

In Y Richtung musst Du ähnlich vorgehen.

Grüße
Klaus
Klaus

Geändert von Klaus01 ( 9. Apr 2015 um 13:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Array Probleme

  Alt 9. Apr 2015, 11:13
In das Array passen genau 12 Integer rein. Mavarik ist glaub ich ein Fan von den Dingern, ich habe die in meinem Leben noch nie benutzt.
Ich denke, es kommt darauf an was man machen will.
In diesem Fall scheint mir etwas derartiges sinnvoll zu sein:

Code:
inputbuffer : array of MyInputValues;
displaybuffer : array [1..maxDisplayvalue];

readerthread:
  fill_inputbuffer
mainthread:
  transferdatafrominputbuffer_to_displaybuffer;
  displaydatafromdisplaybuffer;
Ich gehe mal davon aus, das für die Anzeige immer maxDisplayvalue Werte benötigt werden. Also wird beim Display-Aufrum immer der vollständige Displaybuffer ausgegeben.

Beim Transfer werden die Daten aus dem Inputbuffer so aufbereitet, das sie sinnvoll in den Displaybuffer passen und natürlich auch ein aussagekräftiges Bild ergeben.
Und die "Verwaltung" der Werte findet hier statt, z.B. Löschen der bereits angezeigten Werte, speichern in einem Historyfile usw.

Fillinputbuffer ist nur dafür zuständig Werte entgegen zu nehmen und sie in den Inputbuffer zu schreiben.


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.203 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Array Probleme

  Alt 9. Apr 2015, 11:19
Aber ich sehe nicht, was ich dadurch gewinne, außer mir eine SetLength(..) -Zeile zu sparen indem ich in quasi in die Deklaration integriere.

Mehr noch, ich würde über das komische Array das für den Index 0 einen Fehler werfen wird stolpern. Und mich ärgern, dass die Anzahl der Display-Werte auf alle Zeit fest ist. Der Benutzer kann, mit einem schnelleren Rechner, die Grafik nicht einfach selbst über einen Dialog "feiner aufgelöst" stellen.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.157 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Array Probleme

  Alt 9. Apr 2015, 11:24
einfach selbst über einen Dialog "feiner aufgelöst" stellen.
Klar... aber der User kann im seltensten Fall mehr Pixel an den Bildschirm kleben...
Ob ab 0 oder 1 ist Geschmacksache... Seit es dynamische Arrays gibt habe ich mir angewöhnt alles ab 0 zu definieren...

Wenn ich etwas spezielles brauche, mache ich daraus ein Record und eine Property Werte[Index.Integer]!
  Mit Zitat antworten Zitat
Chris211183

Registriert seit: 19. Sep 2013
Ort: Braunschweig
204 Beiträge
 
Delphi 6 Professional
 
#10

AW: Array Probleme

  Alt 9. Apr 2015, 12:13
Okay, jetzt hab ich nur noch Matsch im Schädel
Christian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:14 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-2025 by Thomas Breitkreuz