AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie kann man Informationen eines Arrays ermitteln?

Wie kann man Informationen eines Arrays ermitteln?

Ein Thema von KodeZwerg · begonnen am 10. Sep 2022 · letzter Beitrag vom 10. Sep 2022
 
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.690 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie kann man Informationen eines Arrays ermitteln?

  Alt 10. Sep 2022, 09:28
Wie kann man Informationen eines Arrays ermitteln?
Was ich gerne hätte wäre eine Möglichkeit unter (altem und neuem) Delphi und unter FreePascal, also mit primitiven Bordmitteln die in allen Pascal's vorhanden sein sollten, Dinge über ein Array zu erfahren.
Im Endeffekt interessiert mich nur die tatsächliche Größe des Array im Speicher, aber vielleicht gibt es ja auch noch Möglichkeiten die mir mehr Informationen darüber ausspucken, wie zum Beispiel wieviel Dimensionen es hat, wieviel Elemente pro Dimension vorhanden sind etc...

Hat da jemand Erfahrung mit und kann mir dabei bitte weiter helfen?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
type
  ArrayOfArrayOfDouble = array of array of double;
var
  Input: ArrayOfArrayOfDouble;
  i: Integer;
  size: Integer;
begin
  Randomize;
  SetLength(Input, 4);
  SetLength(Input[0], 2);
  SetLength(Input[1], 4);
  SetLength(Input[2], 6);
  SetLength(Input[3], 8);
  for i := Low(Input[0]) to High(Input[0]) do
    Input[0][i] := (Random(999) + 333) / (Random(9) + 3);
  for i := Low(Input[1]) to High(Input[1]) do
    Input[1][i] := (Random(999) + 333) / (Random(9) + 3);
  for i := Low(Input[2]) to High(Input[2]) do
    Input[2][i] := (Random(999) + 333) / (Random(9) + 3);
  for i := Low(Input[3]) to High(Input[3]) do
    Input[3][i] := (Random(999) + 333) / (Random(9) + 3);
  // macht man das so?
  size := 0;
  size := size + ((Length(Input[0]) * SizeOf(Input) + SizeOf(double)));
  size := size + ((Length(Input[1]) * SizeOf(Input) + SizeOf(double)));
  size := size + ((Length(Input[2]) * SizeOf(Input) + SizeOf(double)));
  size := size + ((Length(Input[3]) * SizeOf(Input) + SizeOf(double)));
end;
Ein Length() gibt mir ja nur die Elemente der ersten Ebene wieder.
Ein SizeOf() gibt mir nur die Größe des Pointers der Variable wieder.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
 

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 16:11 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