Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Array of String als Konstante klappt nicht... (https://www.delphipraxis.net/149652-array-string-als-konstante-klappt-nicht.html)

stho 26. Mär 2010 07:04


Array of String als Konstante klappt nicht...
 
Hallo liebe Delphianer

Ich habe nun (malwieder) ein Problem das ich alleine mit Googles Hilfe nicht gebacken bekomme.

Ich möchte ein Array of String in meinem Programm hinterlegen.

Wenn ich es so mache:
Delphi-Quellcode:
Const
  list : array of String = ['Test1', 'test2', 'test3'];
klappt es leider nicht...

Er sagt mir:
"Ordinaltyp erforderlich"
+
"Inkompatible Typen:'integer' und 'string'"

Wie kriege ich das gelöst? :gruebel:

Stevie 26. Mär 2010 07:11

Re: Array of String als Konstante klappt nicht...
 
Eckige Klammern sind für Sets - daher die Meldungen bzgl Ordinaltyp. Außerdem musst du die Größe deines Arrays angeben:
Delphi-Quellcode:
const
  list: array[0..2] of string = ('Test1', 'test2', 'test3');

stho 26. Mär 2010 07:14

Re: Array of String als Konstante klappt nicht...
 
okay, das ist gut zu wissen, danke :thumb:

ja, mit arrays habe ich bisher nicht viel am hut gehabt bzw. habe mich bisher gut drum gedrückt...
Aber mein Array kann in diesem Projekt sehr schnell sehr viele Werte enthalten.
Es gibt keine möglichkeit um die Aufzählung "(0..2)" weg zu lassen, oder?

jfheins 26. Mär 2010 07:16

Re: Array of String als Konstante klappt nicht...
 
Dynamische Arrays?

Die kannst du mit setlength() jederzeit anpassen ;)

Stevie 26. Mär 2010 07:17

Re: Array of String als Konstante klappt nicht...
 
Wenn dein Array noch die Größe ändern soll isses ja nicht mehr const, oder? :stupid:

stho 26. Mär 2010 07:19

Re: Array of String als Konstante klappt nicht...
 
ja nein, das meinte ich auch nicht ;-)
Mein array werde ich während der Entwicklung noch oft verändern...
Bei einer Größeren Zahl an Einträgen wird es ein bisschen unübersichtlich.

Das man arrays dynamisch vergrößern kann ist mir bekannt. jedoch soll dieses constanten-array nur von mir während der entwicklungszeit verändert werden ;-)

versteht ihr was ich meine?

himitsu 26. Mär 2010 07:32

Re: Array of String als Konstante klappt nicht...
 
Als Konstante kann man nur statische Arrays verwenden, eine automatische Zählung der nötigen Arraygröße ist leider nicht möglich, also mußt du die Größe manuell angeben.

Das Einzige was möglich ist, ware eine dynamische Array-Variable nachträglich mit dem Inhalt einer statischen Array-Konstante zu belegen.

OK, man könnte zwar auch eine dynamische Arraykonstante erstellen und schon zur CompileTime mit Werten füllen, aber der Aufwand wäre etwas wesentlich größer und es gibt dafür absolut keinen Nutzen.

stho 26. Mär 2010 08:29

Re: Array of String als Konstante klappt nicht...
 
nagut, ich bedanke mich für eure Hilfe ;-)
Bleibt mir wohl nix anderes übrig als dies Array zu zählen :-P

uligerhardt 26. Mär 2010 10:09

Re: Array of String als Konstante klappt nicht...
 
Zitat:

Zitat von stho
Bleibt mir wohl nix anderes übrig als dies Array zu zählen :-P

In neueren Delphi-Versionen zählt der Compiler für dich:
Delphi-Quellcode:
const
  list: array[0..99] of string = ('Test1', 'test2', 'test3');
ergibt
Code:
[DCC Fehler] Unit1.pas(34): E2072 Anzahl der Elemente (3) weicht von der Deklaration (100) ab

stho 26. Mär 2010 10:14

Re: Array of String als Konstante klappt nicht...
 
Zitat:

Zitat von uligerhardt
Zitat:

Zitat von stho
Bleibt mir wohl nix anderes übrig als dies Array zu zählen :-P

In neueren Delphi-Versionen zählt der Compiler für dich:
Delphi-Quellcode:
const
  list: array[0..99] of string = ('Test1', 'test2', 'test3');
ergibt
Code:
[DCC Fehler] Unit1.pas(34): E2072 Anzahl der Elemente (3) weicht von der Deklaration (100) ab

Habs grade mal ausprobiert 8-)
Das ist wirklich ne tolle sache :thumb:

Vielen dank!! :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.
Seite 1 von 2  1 2      

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