Autor Beitrag
buSC
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 14.01.10 11:51 
hallo
ich will eine Array einrichten,wobei zuerst ich nicht weiss, wie viele Elemente drin speichern muessen,sondern in einer Schleife werden elemnte nach erfuellen einer bedingung als element des array ausgewaehlt.
kann ich so machen.
-setlength(arr,ein maximum geschaetzter Anzahl der elemnte)
- hier kommt :for i:= {... ;if bedingung then arr[i]:=...; }
-nach der for-schleife ist der anzahl bestimmt geworden(zb: k gueltige elements in arr)
-jetzt darf ich so schreiben ???
setlength(arr,k)
weil jetz nur die k erste Elemente des Arrays gueltig sind. und so will ich die unnotige laenge des Array frei wird.
danke im voraus

Moderiert von user profile iconNarses: Überflüssige Zeilenumbrüche/Leerzeilen entfernt.
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Do 14.01.10 12:12 
Grundsätzlich ja. Allerdings würd ich nicht Arr[i] := ... machen, denn dann hast du immer i elemente ;) das sollte arr[k] sein, wenn k der Zähler der gültigen Elemente ist.

Des weiteren solltest du gelegentlich überprüfen ob mittlerweile das Maximum schonmal erreicht wurde, denn sonst kommts eventuell zum Überlauf.

_________________
mfg. Joel
buSC Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 14.01.10 12:29 
ja danke fuer die Antwort.
dann wenn ich arr zuerst mit laenge 1000 definiere(setlength(arr,1000))
und letzendlich nur 10 erste Elemente dieses Array gueltig sind,
dann kann ich wieder schreiben setlength(arr,10)
und werden die erste 10 Elemente des Array weiter an ihrer Stelle bleiben und nicht geloescht , ist es richtig ???
Danke im Voraus :)
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Do 14.01.10 13:15 
Hey,

ja die Daten bleiben im Array. Es werden nur die gelöscht, die größer als die neue Größe sind.

MfG Bergmann.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
buSC Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 14.01.10 13:24 
vielen vielen Dank fuer die Antwort.
:)