AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Mehrdimensionales Array an anderes anhängen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrdimensionales Array an anderes anhängen

Ein Thema von Takeo · begonnen am 14. Aug 2014 · letzter Beitrag vom 15. Aug 2014
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 12:07
TeeChart funktioniert aus direkt mit Datenbanken
Markus Kinzler
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#12

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 12:09
Length(array) liefert 0 bei einem leeren Array, wo SetLength noch nicht benutzt wurde. Somit geht ungefähr sowas:

Delphi-Quellcode:
OldLength:=Length(MyArray);
SetLength(MyArray,OldLength+ZeilenInCSV);
for i:=0 to ZeilenInCSV-1 do
  MyArray[OldLength+i]:=CSV.Zeile[i].Spalte[3].Value;
Ralph
  Mit Zitat antworten Zitat
Takeo

Registriert seit: 15. Jul 2014
14 Beiträge
 
#13

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 12:27
TeeChart funktioniert aus direkt mit Datenbanken
Ja das hab ich auch gesehen, aber jetzt ist halt die Frage, ob es so einfach ist das als Datenbank zu machen, wenn man bisher noch nie damit gearbeitet hat? Oder gibt es irgendwo ein einfaches Tutorial, welches zeigt, wie man ne Datenbank anlegt, Daten hinzufügt und das ganze noch embedded macht?

Length(array) liefert 0 bei einem leeren Array, wo SetLength noch nicht benutzt wurde. Somit geht ungefähr sowas:

Delphi-Quellcode:
OldLength:=Length(MyArray);
SetLength(MyArray,OldLength+ZeilenInCSV);
for i:=0 to ZeilenInCSV-1 do
  MyArray[OldLength+i]:=CSV.Zeile[i].Spalte[3].Value;
Ok das ist doch schonmal gut. Und wenn mein Array mehrdimensional ist? Gibt length(MyArray) die Zeilen oder die Spaltenzahl zurück?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#14

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 12:39
Bei Mehrdimensionalen Arrays gibt Length() immer die Länge der aktuellen Dimension im Argument zurück. (Mit Zeilen/Spalten haben Arrays übrigens nichts zu tun, das ist nur deine Interpretation )

Delphi-Quellcode:
var
  MyArray: array of array of Integer;
begin
  foo := Length(MyArray); // Länge der 1. Dimension
  foo := Length(MyArray[0]); // Länge der 2. Dimension
end;
Man muss es also so sehen, dass ein zweidimensionales Array im Grunde ein eindimensionales Array von weiteren eindimensionalen Arrays ist. Wenn man alle "sekundären" Arrays gleich lang macht (was man mit SetLength(MyArray, x, y) tut), dann reicht es die Länge eines der Elemente vom primären Array zu erfragen um die Länge aller sekundären zu erhalten.

Man kann aber auch sowas machen:
Delphi-Quellcode:
var
  MyArray: array of array of Integer;
begin
  SetLength(MyArray, 3);
  SetLength(MyArray[0], 2);
  SetLength(MyArray[1], 8);
  SetLength(MyArray[2], 7);
end;
Dann hat man quasi eine Tabelle, bei der jede Spalte eine unterschiedliche Anzahl von Zeilen hat (oder umgekehrt, je nach dem wie man es interpretiert eben). Dann müsste man für jedes primäre Array einzeln die Länge seines jeweiligen sekundären Arrays ermitteln. (In praktischem Einsatz sehe ich sowas aber sehr selten. Aber es wäre möglich!) Und man ist natürlich nicht auf nur 2 Dimensionen beschränkt. Da kann man echt witzige Dinge mit machen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Takeo

Registriert seit: 15. Jul 2014
14 Beiträge
 
#15

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 13:03
Ok dann sind es halt die Dimensionen
Ich ging halt davon aus, dass man ein zweidimensionales Array (was ich ja benötige) wie eine Art Matrix oder, wie du es auch einmal nanntest, Tabelle auffassen kann, da wird ja von Reihen und Spalten gesprochen.

Es wäre also sinnvoll die Anzahl der "Zeilen" (die Zeitwerte) in die 1. Dimension zu legen, also die variable Länge und in die 2. Dimension die Anzahl der "Spalten" (die verschiedenen Messreihen), die nur einmal gesetzt werden muss und beim anhängen immer gleich bleibt?

Delphi-Quellcode:
Hilfsarray := Getfile(Filepath); //fülle das Hilfsarray mit Hilfe einer Funktion, welche ein Array zurückgibt, mit den Werten der CSV Datei
Oldlength := length(MyArray);
Setlength(MyArray, Oldlength + length(Hilfsarray), length(Hilfsarray[0]));

for i := 0 to length(Hilfsarray)-1 do begin
  for j := 0 to length(Hilfsarray[0])-1 do MyArray[Oldlength + i, j] := Hilfsarray[i,j];
end;
das müsste ja dann gehen, oder? Kann es grad leider nicht testen, da ich meine VM mit Delphi nicht zur Hand habe.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#16

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 15:12
Noch prüfen, ob die Spaltenanzahlen kompatibel sind, aber ansonsten sollte das so passen.
  Mit Zitat antworten Zitat
Bjoerk

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

AW: Mehrdimensionales Array an anderes anhängen

  Alt 15. Aug 2014, 18:18
Mach aus der Getfile besser eine procedure.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz