Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie erkenne ich ob eine Zelle im array gefüllt ist? (https://www.delphipraxis.net/20540-wie-erkenne-ich-ob-eine-zelle-im-array-gefuellt-ist.html)

maximov 19. Apr 2004 22:28

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
Für floats gibt es NAN -> Not A Number ...nur leiber für integers nicht!

Nimm doch low(Integer) -> das sollte eine sehr grosse negative Zahl sein, die man eher selten braucht!

dizzy 20. Apr 2004 01:27

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
Ich hab das just mit so etwas gelöst, was es auch bei Java gibt. Nämlich einer Art "Wrapper-Klasse". Mit dem Code sieht man, dass es einfacher ist, als es zunächst klingt:
Delphi-Quellcode:
type
  TInteger = class(TObject)
  public
    value: Integer;
    constructor Create(val: Integer);
  end;


var
  IntArray: array[0..15] of TInteger;
.
.
.
constructor TInteger.Create(val: Integer);
begin
  inherited Create;
  value := val;
end;
Hat den Nachteil, dass man bei einer Wertzuweisung erst ein Objekt createn muss, aber wenn es gelöscht werden soll, so kann man es via:
Delphi-Quellcode:
FreeAndNil(IntArray[index]);
machen, und dann ergibt (auch wenn noch kein Objekt an "index" created wurde) ein "Assigned(IntArray[index])" = false. Und tädäää, schon weisst du, dass kein Wert drin ist.
Und das ist so traumhaft objektorientiert, dass jeder Lehrer/Prof. Freudensprünge machen müsste :lol:.


gruss,
dizzy

Michael Leyhe 20. Apr 2004 14:38

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
HI

Danke für die Antworten.
Habe mich entschieden ich füll das array vorher mit einer zahl und wenn die hinterher dort noch steht dann hat sich nichts geändert.

Nonsense 20. Apr 2004 15:19

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
Delphi-Quellcode:
if ... <> nil then ...;

himitsu 20. Apr 2004 15:24

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
@Nonsense
es handelt sich hierbei um Integer und dazu gab es witeroben diesen Beitrag - soviel zu nil

Zitat:

Zitat von neolithos
NIL kann nur Zeigern zugewiesen werden.

Intern:

NIL = 0 -> Null-Pointer


Luckie 20. Apr 2004 15:28

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
Zitat:

Zitat von fauxx
Delphi-Quellcode:
var a: array [1..2, 1..2] of Integer;
begin
 a[1,1] := 3;
 showmessage(inttostr(a[1,1])); //gibt 3 aus...
 showmessage(inttostr(a[2,1])); //gibt bei mir (wieso auch immer) 201654148 aus
end;

Da steht "Blödsinn" drin, weil a eine lokale Variable ist und diese nicht initialisiert werden. Folglich steht da irgendwas drin, was an dieser Stelle im Speicher zufällig für ein Wert steht / stand.

Nonsense 20. Apr 2004 15:28

Re: Wie erkenne ich ob eine Zelle im array gefüllt ist?
 
Zitat:

Zitat von himitsu
@Nonsense
es handelt sich hierbei um Integer und dazu gab es witeroben diesen Beitrag - soviel zu nil

Zitat:

Zitat von neolithos
NIL kann nur Zeigern zugewiesen werden.

Intern:

NIL = 0 -> Null-Pointer


Sorry, hatte mir den Beitrag ehrlich gesagt auch nicht richtig durchgelesen. Du hast natürlich recht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz