Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Alle ArrayItems ansprechen (https://www.delphipraxis.net/81644-alle-arrayitems-ansprechen.html)

xZise 30. Nov 2006 16:53


Alle ArrayItems ansprechen
 
Wie mache ich es am besten, dass ich das gesamte array mit einem Wert belege?

SirThornberry 30. Nov 2006 16:55

Re: Alle ArrayItems ansprechen
 
willst du einen Wert über das gesammte Array verteilen oder jedem Array-Ellement den gleichen Wert geben. Dabei kommt es darauf an welchen Wert du zuweisen willst und von welchem Typ die Array-Elemente sind.

xZise 30. Nov 2006 17:02

Re: Alle ArrayItems ansprechen
 
1.) Ich möchte das jedes ArrayItem einen definierten Wert hat
2.) Es ist ein Integer-array
3.) Ein Beispiel: Ich habe das Array, und möcht alle mit "0" belegen.
Delphi-Quellcode:
buffer : array [0..11] of array [0..11] of Byte;
Bisher habe ich es so gemacht:
Delphi-Quellcode:
for i := 0 to 11 do
  for j := 0 to 11 do
    buffer[i][j] := 0;

St.Pauli 30. Nov 2006 17:04

Re: Alle ArrayItems ansprechen
 
Probier mal

Delphi-Quellcode:
FillChar(buffer, SizeOf(buffer), 0);

Muetze1 30. Nov 2006 17:05

Re: Alle ArrayItems ansprechen
 
Wenn es ein Klassenmember oder eine globale Variable ist und alle Einträge beim Start des Programms bzw. nach erzeugen der Instanz beinhalten soll, dann brauchst du nichts machen, das ist dann schon der Fall.

Zitat:

Zitat von St.Pauli
Delphi-Quellcode:
FillChar(buffer, SizeOf(buffer), 0);

Dies sollte folgende Gefahren/Fehler enthalten:

1. Würde SizeOf(Buffer) nur 4 zurück liefern (da Zeiger)
2. Buffer würde falsch sein bei der Angabe in FillChar(), eher @Buffer[0][0]

xZise 30. Nov 2006 17:07

Re: Alle ArrayItems ansprechen
 
@ Pauli: Perfekt ;) Es geht
@ Muetze: Ähm? Ja :D

SirThornberry 1. Dez 2006 10:09

Re: Alle ArrayItems ansprechen
 
Zitat:

Zitat von Muetze1
Wenn es ein Klassenmember oder eine globale Variable ist und alle Einträge beim Start des Programms bzw. nach erzeugen der Instanz beinhalten soll, dann brauchst du nichts machen, das ist dann schon der Fall.

Zitat:

Zitat von St.Pauli
Delphi-Quellcode:
FillChar(buffer, SizeOf(buffer), 0);

Dies sollte folgende Gefahren/Fehler enthalten:

1. Würde SizeOf(Buffer) nur 4 zurück liefern (da Zeiger)
2. Buffer würde falsch sein bei der Angabe in FillChar(), eher @Buffer[0][0]

1.) SizeOf(Buffer) gibt nicht 4 zurück weil es kein dynamiches Array ist und somit kein Pointer
2.) Ist mit erstens erschlagen weil es eben kein Pointer ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 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