AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie erkenne ich ob eine Zelle im array gefüllt ist?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Michael Leyhe · begonnen am 19. Apr 2004 · letzter Beitrag vom 20. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Michael Leyhe

Registriert seit: 1. Dez 2003
Ort: Sprockhövel
101 Beiträge
 
Delphi 7 Enterprise
 
#1

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

  Alt 19. Apr 2004, 18:41
HI

Ich habe bei einem Programm vollgendes Problem

Ich habe ein zweidimensionales statisches array of integer

Delphi-Quellcode:

beispiel :array [1..10,1..10] of integer;
Manche Zellen dieses Arrays werden nun befüllt und manche bleiben auch frei

Frage: Gibt es eine möglichkeit herauszufinden ob z.B. beispiel [7,7] eine Zahl enthällt oder ob ich dieser Zelle vorher noch nichts zugewiesen habe.

Danke schon im vorraus
Michael
Wer weis vll. ist das Leben ja ein Integer, wenn man negativ genug denkt wird es irgendwann positiv.
  Mit Zitat antworten Zitat
fauxx
(Gast)

n/a Beiträge
 
#2

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

  Alt 19. Apr 2004, 18:45
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;
  Mit Zitat antworten Zitat
Michael Leyhe

Registriert seit: 1. Dez 2003
Ort: Sprockhövel
101 Beiträge
 
Delphi 7 Enterprise
 
#3

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

  Alt 19. Apr 2004, 18:52
HI

Naja so richtig hilft mir das auch nicht weiter, weil das programm dies erkennen soll.

wenn ich eine zelle des arrays auslesen will was nicht gefüllt ist erhalte ich eine 0. Das problem ist nur das das programm diese 0 nicht von einer 0 entscheidet die es dort in das array eingetragen hat.

Aber danke flaux
Michael
Wer weis vll. ist das Leben ja ein Integer, wenn man negativ genug denkt wird es irgendwann positiv.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

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

  Alt 19. Apr 2004, 18:56
wie soll das auch unterschieden werden? irgendein wert ist immer drin, also "Nix" gibts nicht (denk ich mal)
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Michael Leyhe

Registriert seit: 1. Dez 2003
Ort: Sprockhövel
101 Beiträge
 
Delphi 7 Enterprise
 
#5

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

  Alt 19. Apr 2004, 18:57
HI

Das ist ja gerade das dumme, deswegen werde ich mir wohl irgendeine andere sehr umständliche methode ausdenken müssen
Michael
Wer weis vll. ist das Leben ja ein Integer, wenn man negativ genug denkt wird es irgendwann positiv.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

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

  Alt 19. Apr 2004, 19:03
wenn du z.B. nur Werte zuweißt, die größer 0 sind, dann kanst du ja ganz am Anfang überall -1 reinschreiben und wenn dann der Wert immernoch -1 ist, dann ist noch nichts zugewiesen.



oder du machst 2 Array's

Delphi-Quellcode:
Werte: array [1..10,1..10] of integer;
Kontrolle: array [1..10,1..10] of boolean;
weist ebenfalls am Anfang dem Kontrolle-Array überall False zu

und sobald du einen Wert im Werte-Array änderst, machst du einfach den entsprechenden Wert im Kontrolle-Array auf True


das Zweite es geht auch damit
Delphi-Quellcode:
xyz: array [1..10,1..10] of Record
  Wert: integer;
  Kontrolle: boolean;
end;
$2B or not $2B
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

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

  Alt 19. Apr 2004, 19:05
Überlege dir eine Zahl die du in dem Array nicht brauchst.
Und definiere alle Werte mit dieser Zahl als undefiniert.
Fülle das Array als ersten Schritt mit dieser speziellen Zahl. Und schon weist du immer welcher Wert noch nicht gesetzt wurde.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#8

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

  Alt 19. Apr 2004, 19:08
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;
1. der Typ ist ja integer. Wenn man die Variable nicht initialisiert ( null setzt) ist da müll drin
2. wenn du nach zellen suchst brauchst man 2 schleifen,

Delphi-Quellcode:
for i :=0 to 10 do
begin
  for j :=0 to 10 do
  begin
    if a[i,j] =0 then showmessage('da is was');
  end;
end;
dazu musst du allerdings erst alle Zellen mit 0 füllen

Delphi-Quellcode:
for i :=0 to 10 do
begin
  for j :=0 to 10 do
  begin
     a[i,j]:=0;
  end;
end;
einfach ist es jedoch einen neuen typ zu definieren

Delphi-Quellcode:
type cell = record
  value: integer;
  used: boolean;
end;
wenn dir das zu arg ist kannst du auch Array of string[16] machn und prüfen ob a[i,j] <> ''. Das ist allerdings wieder problematischer da du erst prüfen musst ob <> '' ansonsten von string zu integer wandeln musst

peace

hboy

Edit: formatiert
und schwupp war einer schneller
Power is nothing without TControl
  Mit Zitat antworten Zitat
fauxx
(Gast)

n/a Beiträge
 
#9

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

  Alt 19. Apr 2004, 19:15
kann NIL eigentlich nur einem Zeiger zugewiesen werden oder auch einem Integer?
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#10

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

  Alt 19. Apr 2004, 19:16
NIL kann nur Zeigern zugewiesen werden.

Intern:

NIL = 0 -> Null-Pointer
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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