Entwickler-Ecke
Sonstiges (Delphi) - Die Zeichen 'a' bis 'z' und '0' bis '9' als type deklarieren
Mrs. Sheep - Mi 04.03.09 20:31
Titel: Die Zeichen 'a' bis 'z' und '0' bis '9' als type deklarieren
Ich habe versucht ein Set zu deklarieren das die (kleinen) Buchstaben und Zahlen enthält. Problem:
Delphi-Quelltext
1: 2:
| TYPE Charset1 = #97..#122, #30..#39; TYPE Charset2 = Set of 'a'..'z' + '0'..'9'; |
Bei (1) erscheint am "," ein Error ...blablabla ";" erwartet...
Bei (2) kommt bei dem "+" ein Error ...blablabla inkompatible Typen "Char" und "String" (er sieht das anscheinend als 'z'+'0'='z0' an)
Hätte jemand die Güte mir zu sagen OB und WIE das geht?
(Ja, man kann es als Variablen machen aber ich bräuchte einen Typ)
jaenicke - Mi 04.03.09 20:42
Was hast du denn vor? So sieht das irgendwie so aus als wüsstest du nicht so ganz wie das gedacht ist. ;-)
Beispiel:
Delphi-Quelltext
1: 2:
| TCharSet1 = (chsCharSet1, chsCharSet2); TCharSet2 = set of TCharSet1; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| var a: TCharSet1; b: TCharSet2; begin a := chsCharSet1;
b := [a, chsCharSet2]; if chsCharSet1 in b then Showmessage('Ja'); |
Ja wird angezeigt, denn a ist ja chsCharSet1 und wurde in b hineingelegt.
Mrs. Sheep - Mi 04.03.09 21:06
Nunjy, ich gebe zu eeeeetwas verwirrend und unklar war das schon... xD
Ich habe jetzt deinen COde (teilweise) übernommen. ABER:
Delphi-Quelltext
1: 2: 3:
| TYPE CharsetA = #97..#122; TYPE CharsetB = #30..#39; TYPE Charset = (CharsetA, CharsetB); |
In (3) kommt der Error: "[Fehler] Unit1.pas(24): E2004 Bezeichner redefiniert: 'CharsetA'"
Dann funktioniert es auch nicht...
Und das mit dem SET OF brauchte ich rücklickend doch nicht... hab jetzt den restlichen Quelltext geändert (was sowieso nötig war)
jaenicke - Mi 04.03.09 21:10
Bei deinem Quelltext hier:
Delphi-Quelltext
1: 2:
| type Charset = (CharsetA, CharsetB); |
Da deklarierst du CharsetA und CharsetB als mögliche Inhalte von Charset. Das heißt CharsetA und CharsetB sind dann Bezeichner in Delphi, die du in eine Variable vom Typ Charset hineinlegen kannst.
Deshalb wiederhole ich meine Frage: Was willst du damit machen?
Nebenbei: Typbezeichner sollten generell mit einem T am Anfang bezeichnet werden, Variablen ohne. Also TCharset statt Charset. Reservierte Worte wie type sollten klein geschrieben werden. Und es reicht auch einmal type zu schreiben, danach können mehrere Deklarationen folgen.
Mrs. Sheep - Mi 04.03.09 21:22
ähm.. Stilfrage; ich schreibe ALLE Delphi-Wörter groß. Und das mit dem T... nunja, kann man nix machen.
Gut also was ich machen will:
Alle Kombinationen aus den Zeichen a,b,c..x,y,z,0,1..8,9. Nicht mehr, nicht weniger.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| TYPE TCharset = #97..#122;
VAR Charset1, Charset2, Charset3, Charset4, Charset5: TCharset;
FOR Charset1:='a' TO 'z' DO FOR Charset2:='a' TO 'z' DO FOR Charset3:='a' TO 'z' DO FOR Charset4:='a' TO 'z' DO FOR Charset5:='a' TO 'z' DO BEGIN myString:=Charset1+Charset2+Charset3+Charset4+Charset5; |
Kurzer Nachtrag: Das Programm stürzt nach ca. 30 sec Laufzeit ab. Besser gesagt Windows-Taskmanager sagt: "Keine Rückmeldung" ob das PRogramm trotzdem noch funktioniert/weiterläuft weiß ich nicht.
Mrs. Sheep - Mi 04.03.09 21:34
Yogu hat folgendes geschrieben : |
Ah, jetzt kommen wir der Sache schon näher. Wie wär's denn mit einem Char?
|
Erbitte genauere Erklärungen/Quellcode; gewisses Unverständniss meinerseits =)
Delete - Mi 04.03.09 21:34
Delphi-Quelltext
1:
| VAR Charset1, Charset2, Charset3, Charset4, Charset5: Char; |
Das sollte doch ausreichen.
Mrs. Sheep - Mi 04.03.09 21:38
und was wird dann aus den FOR... ??
Im geposteten Quellcode geht er ja nur bis Z aber ich brauch die zahlen ja noch die Zahlen!
Delete - Mi 04.03.09 21:43
Dann erweitere den Variablenbereich und prüf ggf. intern ab, ob Buchstabe oder Zahl. Oder nimm Arrays, das ginge auch noch.
jaenicke - Mi 04.03.09 21:59
Mrs. Sheep hat folgendes geschrieben : |
Kurzer Nachtrag: Das Programm stürzt nach ca. 30 sec Laufzeit ab. Besser gesagt Windows-Taskmanager sagt: "Keine Rückmeldung" ob das PRogramm trotzdem noch funktioniert/weiterläuft weiß ich nicht. |
Naja, 26 Buchstaben plus 10 zahlen, das sind 36 Möglichkeiten. Bei 5 Stellen wie du es ja meinst (oder?) sind das 36^5, also ca. 60 Millionen Möglichkeiten. Und wenn du die jetzt alle in eine Memo oder so legen willst...
Was ist der Sinn an dem Ganzen?
alzaimar - Mi 04.03.09 22:10
Yogu hat folgendes geschrieben : |
Schlüsselwörter schreibt man groß klein ;) |
Nee. Schlüsselwörter schreibt man so, wie man Bock hat. Der von Dir genannte Link ist eine Empfehlung, kein Gesetz.
Yogu - Mi 04.03.09 22:35
alzaimar hat folgendes geschrieben : |
Yogu hat folgendes geschrieben : | Schlüsselwörter schreibt man groß klein ;) | Nee. Schlüsselwörter schreibt man so, wie man Bock hat. Der von Dir genannte Link ist eine Empfehlung, kein Gesetz. |
Ich hab auch nie was von Gesetz gesagt. Und die Aussage von mir war auch keins, sonst wäre "Man tötet nicht" auch eines ;)
Etwas präziser: Borland schreibt Schlüsselwörter klein. Borland empfiehlt es uns, sie klein zu schreiben. Wir schreiben sie klein (zumindest die allergrößte Mehrheit der EE'ler).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!