![]() |
Re: Der neue und die Probleme...
Ahm wenn ich mit SetLenght() festlegen kann wie groß der Array ist ist er doch eigentlich nich mehr Dynamisch.... okay ich kann SetLength zur Laufzeit ändern aber wenn ics festleg isser Schwachsinnig oder!?
Mfg |
Re: Der neue und die Probleme...
Naja, wenn du einen dynamischen Array hast, musst du ihm ja irgendwie sagen können wieviele Elemente es haben soll...
Wenn du den Array einfach deklarierst und zur Laufzeit Elemente hinzufügst, bekommst du ne Exception. Bevor du also Elemente hinzufügst musst du die größe des Arrays verstellen. Deshalb ist es ja auch ein dynamischer Array. Du kannst ihn zur Laufzeit verlängern, aber auch verkürzen. Mit SetLength legst du den Array ja nicht wirklich fest, du bestimmst nur seine Länge. Und die gilt so lange, bis du sie mit SetLength wieder änderst. Bis dann, S - tefano |
Re: Der neue und die Probleme...
Der Vorteil ist, das du zur Laufzeit auf Eingaben von extern oder auf Ergebnisse von Berechnungen reagieren, und das Array dann dynamisch anpassen kannst.
|
Re: Der neue und die Probleme...
Jupp stimmt.
Als ergänzung habe ich noch ein kleines Tutorial (allerdings nicht von mir ;-)) parat: ![]() |
Re: Der neue und die Probleme...
Aaaah Ok.
Das heist das ich sage: So du bist jetz ein zweidimensionales array (z.B. regal: array of array of string) und du kannst maximal 10 Elemente aufnehmen (SetLength(regal, 10)). Oder? Ich Garantiere icht für die richtigkeit des Codes ich wollte es nur veranschaulichen :freak: |
Re: Der neue und die Probleme...
Jupp. Stimmt so :thuimb:
|
Re: Der neue und die Probleme...
Ich sag ja:
:wiejetzt: Geht nicht - Gibts nicht :hello: Und ich bin Happy das ich das jetz gerallt hab :dance: Dank DP :dp: ... :-) Ahm ja gut also das hab ich Intus dann kann ich ja getrost ans Coden gehen :coder: Danke =) Wenn ich Probleme hab (wie im Andern Themenraum) komm ich zu euch 8) Mfg Marc |
Re: Der neue und die Probleme...
hi,
ich hab die beiträge alle mal kurz überflogen, ich gebs ja zu ;) was ist ein array ( wie kann man sich das vorstellen ) du weisst was variablen sind ? einfach eine speicheradresse die vom typ string ( zeichenkette ) oder integer ( ganzezahlen ) oder sonstwas ist eine varible deklarieren wir mit
Code:
wir haben eine variable vom typ string deklariert
var
hallo : string; nun können wir einen Wert der Variablen zuweisen bsp. "A1"
Code:
was ist aber wenn wir mehrere werte speichern müssen, von denen wir die anzahl nicht kennen oder aber die einen einheitlichen namen verwenden sollen oder oder oder ... dann benutzen wir arrays
begin
hallo := 'A1'; end; arrays sind quasie viele einzelne variablen um ein dynamisches(sprich unbestimmte länge) array zu erzeugen geben wir dies an
Code:
nun müssen wir nur noch sagen, wie gross das dynamische array sein soll.
var
hallo : array of string; wir bereiten das array auf einen wert vor
Code:
wir haben nun eine stelle im array "frei gestellt" ein array fängt immer bei 0 an zu zählen, also greifen wir mit
begin
SetLength(hallo,1); end;
Code:
auf den platz im array zu und weisen das zeichen a hinzu. genau wie bei variablen
hallo[0] := 'a';
statische arrays haben eine feste länge
Code:
hier wurde ein array erzeugt, welches 10 felder hat der zugriff erfolgt wie bei einfachen variablen oder dynamischen arrays
var
hallo : array[0..9] of string;
Code:
um die länge eines array rauszufinden, kannst du length() oder high() aufrufen, wobei length() auch bei mehr demensionalen array funktioniert.
hallo[0] := 'a';
achte darauf, wenn du length() verwendest und eine speicherstelle ansprechen willst, das ergebnis length() -1 zu nehem ! SetLength() benutzt du um die länge eines dynamischen array zu ändern, verbraucht viel speicher klingt komisch ist aber so ;) kurz zu mehr demensionalen arrays
Code:
wieviele demensionen hat hallo ?
var
hallo : array[0..9] of array[0..9] of string; 2, weil jedes array of eine denemsion ist, gleiches gilt für dynamische arrays
Code:
ich hoffe, ich konnte helfen,
var
hallo : array of array of string; grüsse |
Re: Der neue und die Probleme...
Konntest du nur wurde mir schon geholfen danke :mrgreen:
|
Re: Der neue und die Probleme...
@Carbrögen
Kleine berichtigung. Du hast ein zweidimensionales Array geschaffen
Delphi-Quellcode:
Du hast aber mit deiner SetLength(regal, 10) nur EINE Dimension festgelegt. Du mußt immer alle Dimensionen Festlegen. Also
Array of Array of string //zwei dimensionen
Delphi-Quellcode:
Ein zweidimensionales Array kannst du gut mit einen Güterbahnhof vergleichen. Ein Güterbahnhof (wo ja in der Regel in seiner Struktur identisch aufgebaut) hat einen Namen oder eine Bezeichnung, das ist der Name des Arrays. Dieser Güterbahnhof hat mehrere Bereiche (1 Dimension). Jede Bereich hat die selbe Anzahl an Stellplätzen (2 Dimension). Diese Stellpätze können durch die Cargoboxen auch aufeinander gestellt werden.(3 Dimension).
SetLength(Regal, 10, 10) //für zwei dimensionen
Wie gesagt, bei mehr Diemensionen wird es echt schwer das ganze Logisch darzustellen. Versuch immer, so wenig wie möglich Dimensionen zu verwenden. Ab drei wird es echt schwer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 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