![]() |
'=' erwartet, aber ':' gefunden
Kann mir jemand sagen, warum ich bei folgender Konstellation diese Fehlermeldung erhalte.
Delphi-Quellcode:
Fehlermeldung:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls; type TBuchstabe = (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ae, oe, ue); TBuchstaben: array[TBuchstabe] of string = 'a', 'b', 'c', 'd', 'e', 'f', 'g',//In dieser Zeile Tritt der Fehler auf. 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'ae', 'oe', 'ue'); type TMatrix = record Buchstabe: TBuchstaben; Binaer: integer; end; [Fehler] Unit1.pas(14): '=' erwartet, aber ':' gefunden Ich möchte später das Record Matrix mit werten füllen. |
Re: '=' erwartet, aber ':' gefunden
Moin Steppo,
hier
Delphi-Quellcode:
muss noch ein const davor.
TBuchstaben: array[TBuchstabe] of string ....
Das ist ja kein Typ mehr. |
Re: '=' erwartet, aber ':' gefunden
Ausserdem hast du vergessen die Klammer aufzumachen hinter dem =
|
Re: '=' erwartet, aber ':' gefunden
Delphi-Quellcode:
Abgesehen davon muss, soweit ich weiß, in den eckigen Klammern nach dem Array die Anzahl der Elemente stehen, und nicht, von welchem Typ sie sein sollen. Sonst brauchst du ein set of.... Oder? :gruebel:
TBuchstaben: array[TBuchstabe] of string = 'a', 'b', 'c', 'd', 'e', 'f', 'g',//In dieser Zeile Tritt der Fehler auf.
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'ae', 'oe', 'ue'); |
Re: '=' erwartet, aber ':' gefunden
Hi,
wenn Deine Strings immer den Enum-Namen entsprechen (scheint hier der Fall zu sein), kannst Du auch schreiben:
Delphi-Quellcode:
mfG
uses
TypInfo; // ... var s: string; b: TBuchstabe; begin b := u; // z.B. s := GetEnumName(TypeInfo(TBuchstabe), Integer(b)); // gibt den String "u" zurück mirage228 |
Re: '=' erwartet, aber ':' gefunden
Danke Leute für die schnelle Antwort.
O.K Werde das Problem genauer beschreiben. TBuchstabe ist ein Aufzählungstyp.
Delphi-Quellcode:
TBuchstaben ist ein array dieses vorher genannten Aufzählungstypen.
type
TBuchstabe = (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, ae, oe, ue);
Delphi-Quellcode:
Das heißt, das sich der Berich in diesem Array (welches sonst mit [0..28]) definiert würde) von a bis ue erstreckt.
TBuchstaben: array[TBuchstabe] of string = ('a', 'b', 'c', 'd', 'e', 'f', 'g',
'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'ae', 'oe', 'ue'); Diese Konstrukt brauche ich nachher, um die Position im Array zu bestimmen. Das heißt in dem Record werden zwei Werte gespeichert.
Delphi-Quellcode:
1. Ein Wert
type
TMatrix = record Buchstabe: TBuchstaben; Binaer: integer; end; 2. Ein String ermittelt aus der Position des Aufzählungstypen. Das ganze soll nachher so aussehen. In dem nachher, in der Procedur entstehenden Array, werden die Werte: TMatrxi = Buchstabe:a,Binaer:1;Buchstabe:b,Binaer:2,usw Hoffe ich konnte das ganze jetzt verdeutlichen. Den Aufzählungstypen brauche ich lediglich, um die Position im Array von Typ string zu bestimmen. |
Re: '=' erwartet, aber ':' gefunden
Sehe ich das jetzt richtig, dass du dadurch die Nummer des jeweiligen Buchstaben im Alphabet herausfinden willst?
Einfacher währe eigentlich, über den ASCII-Code zu gehen. Wenn ich mich recht entsinne, bekommst du zum Beispiel mit
Delphi-Quellcode:
die Zahl 65 zurück. Nehme das Ergebnis also Minus 64 und du hast die Nummer des Buchstaben im Alphabet; Kleinbuchstaben solltest du vorher UpperCase setzen, damit du nicht verschiedene Startwerte subtrahieren musst.
ord('A')
Was dein Konstrukt angeht, so kann ich nur die bereits gegebenen Hinweise nennen: In die Eckige Klammer hinter dem Array-Bezeichner kannst du keinen Typennamen schreiben, da muss die Anzahl der Elemente hin. Desweiteren hast du vor der Aufzählung der Strings die öffnende Klammer vergessen, und ob die runde Klammer "(" dafür die richtige ist, würde ich bezweifeln. Müsste eigentlich "[" sein, oder "{"...eins von beiden jedenfalls ;-) Bis dann, S - tefano [Edit] Oder lass die eckige Klammer hinter dem Array-Bezeichner ganz weg, wenn du schon eine konstante vordefinierte Menge von Elementen hast, geht das glaube ich auch automatisch. [/Edit] |
Re: '=' erwartet, aber ':' gefunden
Zitat:
|
Re: '=' erwartet, aber ':' gefunden
...hups... :oops:
Achja, zu den Umlauten noch: Die ord-Methode wird dir da zwar einen Wert zurückgeben, da musst du dann aber soweit ich weiß eine Zahl >65 abziehen, weil Umlaute ja so eine Art regionales Sonderzeichen sind und nicht im "normalen" Alphabet vorkommen. |
Re: '=' erwartet, aber ':' gefunden
Die oeffnede Klammer ist vorhanden. Habe sie nur vergessen zu Kopieren.
Habe das ganze schonmal in einer Unit verwendet, um Feiertage zu bestimmen. Warumes jedoch jetzt nicht funktioniert ist mir ein Rätsel. Wie gesagt, es wird laut kompilier eine = anstatt eines Doppelpunktes erwartet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 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-2025 by Thomas Breitkreuz