AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Set Of ?

Ein Thema von Pseudemys Nelsoni · begonnen am 20. Sep 2003 · letzter Beitrag vom 23. Okt 2003
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#21

Re: Set Of ?

  Alt 16. Okt 2003, 14:10
Zitat:
mit der man jeden beliebigen String umwandeln kann, nicht von vornherein bei Delphi gibt?
Die Antwort ist ziemlich einfach: diese Funktionen nutzen statische Typ Deklarationen die zur Entwurfszeit der RTL überhaupt nicht bekannt waren. Sprich die Entwickler bei Borland kannten den Typ TName überhaupt nicht, wie sollen sie dann darauf reagieren ??

Die allgemeine Funktion in deinem Falle ist aber GetEnumValue() und GetEnumName() und TypeInfo(). Die Funktionen StrToName() und NameToStr() sind nur Funktionen die speziell auf den Typ TName abgestimmt wurden, und die generellen Funktionen kapseln.

Somit haben die Borlandentwickler genau das getan was du verlangtest, aber eben universell auf jeden möglichen zukünftigen Typ anwendbar.

Gruß Hagen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#22

Re: Set Of ?

  Alt 17. Okt 2003, 11:44
Zitat von negaH:
...Interessant wird es jetzt mit "idiot" denn mit Hansas Vorschlag würde eine solche Doppeldeutigkeit zu Fehlern führen. Da eben "id" auch in "idiot" vorkommt.
Hatte das schon im Beitrag stehen (ohne Idiot) 8) und wieder gelöscht:

const namestring : ' comment name id idiot '; Man beachte die Leerzeichen. Denn hiermit wäre der Idiot unschädlich gemacht. Die Suchabfrage müßte natürlich auch noch geändert werden:

if pos (' ' + SuchString + ' ',namestring) <> 0;
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#23

Re: Set Of ?

  Alt 17. Okt 2003, 14:33
@Hansa, darauf habe ich schon gewartet Trotzdem habe ich die Erfahrung gemacht das dies schief gehen kann, wenn der Programmierer selber diese Leerzeichen setzen muß. Es wurde vergessen oder der String selber wurde nicht ge'Trim()t.

Gruß Hagen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#24

Re: Set Of ?

  Alt 17. Okt 2003, 19:30
Zitat von negaH:
@Hansa, darauf habe ich schon gewartet Trotzdem habe ich die Erfahrung gemacht das dies schief gehen kann, wenn der Programmierer selber diese Leerzeichen setzen muß...
hehe, darauf gewartet. War doch klar. 8) Jan hat gesagt, er beschäftige sich jetzt mal mit Typen. Natürlich kann er Deinen Code abkupfern und versteht ihn nicht richtig. Nach dem Motto: "es funktioniert und keiner weiß warum". Der Code ist übrigens in meiner privaten CodeLib gelandet, aber nicht für solche Fragen, wie hier.

Desweiteren sage ich nur PROCEDURE
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#25

Re: Set Of ?

  Alt 17. Okt 2003, 21:28
Zitat von Hansa:
Jan hat gesagt, er beschäftige sich jetzt mal mit Typen. Natürlich kann er Deinen Code abkupfern und versteht ihn nicht richtig. Nach dem Motto: "es funktioniert und keiner weiß warum".
Hallo Hansa,
nein ich beschäftige mich nicht mit Typen, weil ich nicht schwul bin!
Ausserdem verstehe ich sehr wohl was der Quelltext soll, und auch wie er funktioniert, weil ich mir die Typinfo unit angeguckt habe.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#26

Re: Set Of ?

  Alt 23. Okt 2003, 17:59
ok, noch eine frage zu "Set Of"


wozu muss ich ein "Set" erstellen? kann ich nicht einfach einen aufzählungstyp checken? also z.b:

Delphi-Quellcode:
Type Tbla = (a,b,c,d,e,f)
var
  bla: TBla;
begin
  if (b in bla) then
  ShowMessage('jo')
end;

^^^^^^^^wieso kann ich nicht so prüfen ob ein bestimmter wert enthalten ist?

wieso muss ichs so machen?...

Delphi-Quellcode:
Type Tbla = (a,b,c,d,e,f)
Tirgendwas = Set Of Tbla;
var
  irgendwas: Tirgendwas;
begin
  if (b in irgendwas) then
  ShowMessage('jo')
end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: Set Of ?

  Alt 23. Okt 2003, 18:20
Moin Silent,

im ersten Falle ist bla vom Typ einer Aufzählung. Hier kannst Du nur auf Gleicheit prüfen (gleich einen Element der Aufzählung)
Im Zweiten Falle ist bla vom Typ einer Menge, also sozusagen, array of Aufzählung, und Du kannst prüfen, ob der gesuchte Wert darin enthalten ist.

Übrigens fehlt jeweils die Initialisierung von bla bzw. irgendwas, der Inhalt wäre also wohl zufällig.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#28

Re: Set Of ?

  Alt 23. Okt 2003, 18:21
Hrm? Die "TypInfo" kannst Du Dir bei Deinem D7 aber nicht angeguckt haben. Da heisst die Unit nämlich "Types".

Das weiss ich auch eigener leidlicher Erfahrung mit der RTTI und verschiedenen Delphi-Versionen *seufz*.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:21 Uhr.
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