AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mehrdimensionale Arrays mit Werten beladen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrdimensionale Arrays mit Werten beladen

Ein Thema von Blackstar · begonnen am 28. Sep 2009 · letzter Beitrag vom 28. Sep 2009
Antwort Antwort
Benutzerbild von Blackstar
Blackstar

Registriert seit: 7. Mär 2007
10 Beiträge
 
#1

Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 15:54
Ich versuche vergeblich im Internet zu finden wie ich zB einen 2d Array einfach mit werten beladen kann

ich habe bisher:

Delphi-Quellcode:
type
meinarray = array[0..9,0..9] of integer;
und versuche
Delphi-Quellcode:
const meinarray =
  (
   (1,2,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,0,1)
  );
allerdings funktioniert das nicht
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 16:04
Soetwas geht nur bei globalen Konstanten-, bzw. Variablen-Definitionen.

Also entweder alles einzeln zuweisen oder es über eine Konstante an die Variable zuweisen.

Wenn es die Initialbelegung einer globalen Variable ist, ginge es auch direkt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 16:16
Ergänzung: Deine Deklarationen sind durcheinander. Du deklarierst einen Typ und willst den dann als Konstante beladen. Das geht mit wie schon gesagt mit globalen consts und vars
Delphi-Quellcode:
const
meinarray : array[0..9,0..9] of integer =
   ((1,2,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,0,1)
  );
Kompiliert, aber nicht geprüft.

Grüße, Messie
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 16:28
Zitat von himitsu:
Soetwas geht nur bei globalen Konstanten-, bzw. Variablen-Definitionen.
geht bei mir auch lokal:

Delphi-Quellcode:
type
  meinarray = array[0..9,0..9] of integer;
const
  a: meinarray = ...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 20:10
Ups, dann waren es nur die Variablen, wo es lokal nicht geht ... wäre ja och blöd, wenn man Konstanten keinen Wert zuweisen könnte

Und es fiehl mir auch jetzt erst auf
Zitat:
Delphi-Quellcode:
const meinarray =
  (
   (1,2,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,1,1,1,1,1,1,1,1),
   (1,0,0,0,0,0,0,0,0,1),
   (1,1,1,1,1,1,1,1,0,1)
  );
Bei komplexeren Typen mußt du immer einen Typdeklaration angeben, denn sonst weiß der Compiler ja nicht wie er es speichern soll.

Nur bei einfachen Ordinal- und String-Typen kann man es weglassen und der Compiler versucht dann einen passenden Typen zu finden String/WideString oder Byte/Word/LongWord/ShortInt/SmallInt/LongInt/Int64 ... halt je nach Größe des entsprechenden Wertes, bzw. die Ordinal-Typen werden oftmals auch direkt im QuellCode ersetzt und nicht als eigenständige Konstante gespeichert
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 20:13
Nur als Ergänzung: Typenlose Konstanten werden immer nach dem Motto "find and replace" im Source ersetzt, typisierte dagegen nie. Letztere werden wie Variablen behandelt, nur dass der Compiler - wenn die Option an ist - drauf achtet, dass sie keinen neuen Wert zugewiesen bekommen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 20:18
OK, ich dachte wenn man einen Pointer auf eine typlose Konstante bildet, dann wird sie als extra "konstante" gespeichert, aber ich hab's grad getestet und der Compiler läßt sowas (@x) garnicht erst zu.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Mehrdimensionale Arrays mit Werten beladen

  Alt 28. Sep 2009, 20:21
Zitat:
wenn die Option an ist
joar, $WriteableConst ist schon eine böse Option
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:26 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