Autor Beitrag
bogus2k
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Sa 13.03.04 14:24 
Ich habe eine Variable Karte als Array vom Typ Record ;-)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
type DatenArray = record
  caveID: Integer;
  xCoord: 1..150;
  yCoord: 1..200;
  cave_name: String;
  terrain: Integer;
  player_name: String;
  tribe: String;
  rank: Integer;
end// Ende type

var Karte: Array of DatenArray;
    i: Integer;


Und jetzt möchte ich gerne dem Array einen Wert zuweisen:

ausblenden Delphi-Quelltext
1:
Karte[i].caveID := inttemp;					


Dabei bekomme ich aber den Fehler EAccessViolation,
was mache ich Falsch?

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
Moderiert von user profile iconDeCodeGuru: Topic verschoben
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 13.03.04 14:27 
Hallo!

Du hast die Länge des Arrays noch nicht zugewiesen. Im Moment ist es Null Elemente lang und da kann ja dann nichts reinpassen. Die Länge eines Arrays legst Du mit "SetLength" fest.
ausblenden Delphi-Quelltext
1:
SetLength(myArray, 10);					


Aber Vorischt: da die Indizierung eines Arrays bei Null beginnt, ist der höchste zulässige Index 9 und nicht 10. Den höchsten zulässigen Index bestimmst Du mit "High(myArray)".

In den Tutorials gibt es auch eines zu Arrays. Kannste Dir ja mal durchlesen.

MfG
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
bogus2k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Sa 13.03.04 14:44 
ach so ich dachte die laenge muss man nur bei statistischen arrays angeben
mein array brauch so ca. 10 000 felder, das ist wohl nicht moeglich oder?
wie kann man das sonst realisieren?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 13.03.04 14:58 
Wieso sollte das nicht möglich sein?

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Sa 13.03.04 15:02 
ich glaub du hast da was verwechselt:
bei statischen arrays wird die länge ja schon in der deklaration festgelegt und ist deshalb später nicht mehr änderbar.
Zitat:
mein array brauch so ca. 10 000 felder, das ist wohl nicht moeglich oder?

doch es ist möglich und zwar so:
ausblenden Delphi-Quelltext
1:
SetLength(Karte,10000);					

:D

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
bogus2k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25



BeitragVerfasst: Sa 13.03.04 15:15 
danke funktioniert jetzt alles