![]() |
statisches Array mit Konstantenausdruck als Bereich - E2026
Hallo,
ich versuche einen normalen Array anzulegen:
Delphi-Quellcode:
Wenn ich die Größe jetzt aber per Konstante festlegen will (Übersichtlichkeit wegen), funzt das nicht: Fehlermeldung [DCC Fehler] aesunit.pas(21): E2026 Konstantenausdruck erwartet
const buffersize:integer=4096;
type TByteBuffer:array[0..4096-1];//funktioniert type TByteBuffer:array[0..buffersize-1];//!funktioniert nicht! const buffersizemid:integer=buffersize/16;//funktioniert auch nicht Sollte sowas nicht eigentlich funktionieren oder denke ich gerade falsch?? Delphi zeigt mir allerdings die richtigen Werte perToltip für z.B. buffersizemid an. (256) mfg, geofranz |
Re: statisches Array mit Konstantenausdruck als Bereich - E2
Zitat:
[pre]type TByteBuffer = array[0..4096-1] of TDeinType;[/pre] Warum willst du die Array-Grösse von vorne herein einschränken, und dadurch nunnötigen Speicher verbraten... Warum nimmst du keine dynamischen Arrays oder noch besser irgendeine List (TObjectList, TCollection etc.) |
Re: statisches Array mit Konstantenausdruck als Bereich - E2
kann auch nicht funktionieren, da arrays unbestimmten typs sind ;)
und das letzte ist auch einfach:
Delphi-Quellcode:
const
buffersizemid: integer = buffersize div 16; |
Re: statisches Array mit Konstantenausdruck als Bereich - E2
Moin geofranz,
das funktioniert nicht, da Du eine typisierte Konstante deklariert hast, und diese, je nach Compilereinstellung, auch änderbar sein können. Wenn Du die Typenangabe weglässt, wird die Konstante auch als konstant angesehen, und kann, wie geplant verwendet werden.
Delphi-Quellcode:
const
buffersize : integer =4096; // typisierte Konstante const buffersize = 4096; // Konstante |
Re: statisches Array mit Konstantenausdruck als Bereich - E2
@Jelly: Uups, hab einfach of Byte wegkopiert vergessen. Im Quellcode waren sie aber drinn.
Ich verarbeite die Daten in solchen Blöcken dann weiter. Da machen imho dynamische und statische Arrays keine wirklichen Unterschied, oder doch? @Christian Seehase: Ah! Ich wusste zwar nicht, dass sich Konstanten ändern können (eigentlich dem Namen nach wiedersprüchlich) aber daran lag es. @1234588: 1. Habs vergessen zu kopieren im Quellcode sind sie bestimmt (of Byte). Mit '/' war auch ein Fehler, der allerdings erst nach dem untypisieren angezeigt wurde. Habs duch div ersetzt. Jetzt funktioniert alles wie gewüscht. Danke an alle! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr. |
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