![]() |
Array of Array of record
Wieder total neben der Schnur heute.. :wall:
Delphi-Quellcode:
TRecord2 = record
GibsMir: string; end; TRecord1 = record Hahaha: array[1..15] of array of TRecord2; end;
Delphi-Quellcode:
Wie komme ich jetzt an GibsMir dran ? (Nicht hauen)
For i := 1 to 15
List.Lines.Add('Was nun ' + string(FileInfo.Hahaha[i])); gruss |
AW: Array of Array of record
Wenn ich mich nicht verguckt habe:
Delphi-Quellcode:
For i := 1 to 15
List.Lines.Add('Was nun ' + FileInfo.Hahaha[i][Low(Hahaha[i])].GibsMir); |
AW: Array of Array of record
Es ist ja ein Array of Array.
Das heisst in dem Array FileInfo.Hahaha[i] steckt nochmal ein Array und auch dort musst Du mit einem indexer [j] auf das richtige Item zugreifen. |
AW: Array of Array of record
So isses, ich hatte das in meinem Beispiel nur angedeutet.
|
AW: Array of Array of record
Zitat:
Danke. gruss |
AW: Array of Array of record
Zitat:
Delphi-Quellcode:
Ich verwende ein komma
for IntI := 1 to FileInfo.Tracks do
begin for IntA := 1 to 1 do begin for IntB := 0 to FileInfo.NoteCounter[IntI] -1 do begin Grid[IntI, IntB] := FileInfo.MIDINotes[IntA, (byte(FileInfo.MIDINotes[IntB]))].NoteNo; InstGrid[IntI, IntB] := FileInfo.MIDINotes[IntA, (byte(FileInfo.MIDINotes[IntB]))].Instrument; end; end; end;
Delphi-Quellcode:
FileInfo.MIDINotes[IntA, (byte(FileInfo.MIDINotes[IntB]))].NoteNo;
du hingegen nicht.. Ist es das selbe? Oder wo liegt der Unterschied. gruss |
AW: Array of Array of record
Man sollte vielleicht das dynamische Array mal dimensionieren, dann sollte der Zugriff klappen.
|
AW: Array of Array of record
Zitat:
Es geht nicht um die Funktionalität DAS tut's und es wird schon Hundertzeilen vorher Dimensioniert. Es ging um die frage wo der unterschied liegt.. mit oder ohne Komma gruss |
AW: Array of Array of record
Achso.
Es gibt keinen Unterschied, außer in der Anzahl und Art der Zeichen. Kannst Du überall nachlesen, hättest googeln können. |
AW: Array of Array of record
Zitat:
Mit dem googeln ist immer so ne sache wenn man nicht genau weiss welche stichworte man da verwenden soll. Wenn sich dann 1,2 Millionen Einträge finden ist das nicht gerade das wahre vom Ei. gruss |
AW: Array of Array of record
|
AW: Array of Array of record
Zitat:
Hilft mir aber nicht weiter da mein Array ja steht. Aber beim vergleiche total irrationale ergebnisse liefert obwohl sie stimmen. Wenn man mit dem Debugger vergleicht. siehe ![]() gruss |
AW: Array of Array of record
Zitat:
Zitat:
Zitat:
Zitat:
Aber eins fällt schon mal auf: Du schreibst, das der Code "total irrationale ergebnisse liefert obwohl sie stimmen." Das ist definitiv falsch beobachtet. Sie stimmen nämlich nicht. Delphi hat zwar Macken, aber der Arrayzugriff gehört definitiv nicht dazu. |
AW: Array of Array of record
Zitat:
Habe im anderen Thread schon geschrieben das laut der informationen die vom Tooltip des Debugger kommen sind alle Daten korrekt werden aber falsch ausgewertet. das meine ich mit Irrational gruss |
AW: Array of Array of record
a = array of array of ...
a[x, y] = a[x][y] |
AW: Array of Array of record
OT:
Da das Problem ja im anderen Thread gelöst ist erlaub ich mir eine kurze Entführung: Zitat:
Ich meine das in andern Programmiersprachen so gesehen zu haben, dass man mit a[1,2] statische und mit a[1][2] dynamische Arrays angesprochen hat (oder war das umgekehrt)? /OT |
AW: Array of Array of record
Also soo ganz kompatibel sind die beiden schreibweisen wohl nicht.
wenn Du eine Stringliste hast, die ja wohl auch ein Array ist(?) kannst Du so nicht zugreifen
Delphi-Quellcode:
so aber geht es
Bstb:=MyStringlist[0,1];
Delphi-Quellcode:
Allerdings meckert da der Compiler schon im Vorfeld.
Bstb:=MyStringList[0][1];
Gruß K-H |
AW: Array of Array of record
Zitat:
konnte mir irgendwo auch nicht vorstellen das unterschiedliche Schreibweisen das gleiche sein soll. Abgesehen vom Ergebnis in diesen fall |
AW: Array of Array of record
Das bezog sich nur auf Arrays ... egal ob statisch oder dynamisch.
Bei einer Stringlist steht SL[i] eigentlich für SL.Item[i], wobei das Item weggelassen werden kann, da es als "default" Array-Property deklariert ist. Aus diesem Grund läßt sich z.B
Delphi-Quellcode:
nur als [x][y] und nicht als [x, y] schreiben, da es ja eigentlich [x].Item[y] heißt.
Array of TStringList
Bei verschachtelten Array geht aber Beides. |
AW: Array of Array of record
Und weil es für [x, y] keinen Getter in TStringlist gibt und das Array zwar intern vorhanden, der Zugriff aber gekapselt ist.
|
AW: Array of Array of record
Zitat:
|
AW: Array of Array of record
genau
einfach nur zwei Schreibweisen für das selbe Ergebnis, so wie
Delphi-Quellcode:
und
i := i + 1;
Delphi-Quellcode:
(Ersteres wird durch den Compiler zum Letzteren optimiert).
Inc(i);
|
AW: Array of Array of record
Danke. Die Frage kam nur auf wg. der (so mein ich halt) anderen Verwendung in C# oder war es Java?
(Ich bin halt dabei vier Sprachen parallel zu lernen, wobei C# und Java für die Schule sind und wir da kaum was mit machen, deswegen bleibt da sowenig hängen, Delphi und VBA in der Firma klappt schon besser, da ich da täglich mit arbeite). So jetzt aber [/OT] und danke für das Stillen meiner Neugier:thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 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