Autor Beitrag
Mrs. Sheep
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win Vista
Delphi 2005 PE, Lazarus 0.9.26
BeitragVerfasst: Mi 04.03.09 20:31 
Ich habe versucht ein Set zu deklarieren das die (kleinen) Buchstaben und Zahlen enthält. Problem:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
  TCharSet1 = (chsCharSet1, chsCharSet2);
  TCharSet2 = set of TCharSet1;
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win Vista
Delphi 2005 PE, Lazarus 0.9.26
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.03.09 21:10 
Bei deinem Quelltext hier:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win Vista
Delphi 2005 PE, Lazarus 0.9.26
BeitragVerfasst: 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.

ausblenden 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.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 04.03.09 21:29 
Ah, jetzt kommen wir der Sache schon näher. Wie wär's denn mit einem Char?

Zur Stilfrage: DelphiTreff - Delphi-Styleguide. Schlüsselwörter schreibt man groß klein ;)

Edit: klein! :oops:
Edit2: Schön, dass es immer noch aufmerksame EE-User gibt :lol:


Zuletzt bearbeitet von Yogu am Mi 04.03.09 21:49, insgesamt 1-mal bearbeitet
Mrs. Sheep Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win Vista
Delphi 2005 PE, Lazarus 0.9.26
BeitragVerfasst: Mi 04.03.09 21:34 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
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 =)
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.03.09 21:34 
ausblenden Delphi-Quelltext
1:
VAR Charset1, Charset2, Charset3, Charset4, Charset5: Char;					

Das sollte doch ausreichen.
Mrs. Sheep Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win Vista
Delphi 2005 PE, Lazarus 0.9.26
BeitragVerfasst: 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!
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.03.09 21:59 
user profile iconMrs. Sheep hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 04.03.09 22:10 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
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.

_________________
Na denn, dann. Bis dann, denn.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 04.03.09 22:35 
user profile iconalzaimar hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
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).