Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Funktion zur Datentypbestimmung (https://www.delphipraxis.net/48155-funktion-zur-datentypbestimmung.html)

test3r 21. Jun 2005 12:42


Funktion zur Datentypbestimmung
 
Hallo zusammen,
ich bin auf der suche nach einer Funktion, die mir den Datentyp einer Variable zurückliefern soll. ein Beispiel hierfür wäre zum Beispiel Listen: Man muss diese ja immer für einen bestimmten Datentyp schreiben. Ich möchte gerne nur eine Liste haben, die dann abhängig vom Datentyp handelt. Geht das?
Ich hoffe mir kann jemand helfen.
Gruß

barf00s 21. Jun 2005 12:51

Re: Funktion zur Datentypbestimmung
 
Ja, es geht.

idontwantaname 21. Jun 2005 12:54

Re: Funktion zur Datentypbestimmung
 
forausgesetzt ich habe das jetzt richtig interpretiert:

du könntest Variant verwenden
oder ein Record mit zwei werten, einen für den datentyp (mit konstanten vorher bestimmen - z.b.: integer 1 string 2) und dann als 2. variable ein variant, dem kannst du alles zuweisen

@barf00s: tolle antwort ... :roll:

alcaeus 21. Jun 2005 13:06

Re: Funktion zur Datentypbestimmung
 
@idontwantaname (warum eigentlich nicht? :gruebel: ;)): Theoretisch hat barfoos ja Recht. Die Frage war "Geht das" :lol: ;)

Im Ernst: in Delphi 7 sind jede Menge TryStrTo...-Funktionen enthalten. Damit kannst du versuchen, einen String in einen anderen Typ umzuwandeln. Mit diesen Funktionen kannst du dir auch Is...-Funktionen schreiben:
Delphi-Quellcode:
function IsInteger(const aValue: String): Boolean;
var
  aInt: Integer;
begin
  Result := TryStrToInt(aValue, aInt);
end;
Fuer die anderen Typen gehts natuerlich genauso. Ab welcher Delphi-Version diese Funktionen dabei sind, weiss ich allerdings nicht.


Wenn du jetzt aber den Typen einer Variable pruefen willst, gibts ausser Variants keinen Weg. Fuer Funktionen die an einen bestimmten Typen gebunden sind, gibts aber Ueberladung:
Delphi-Quellcode:
function Foo(Bar: String): Boolean; overload;
function Foo(Bar: Integer): Boolean; overload;
Die Aufrufe sehn dann so aus:
Delphi-Quellcode:
Foo('SomeValue');
Foo(0);
Die Funktion musst du natuerlich fuer jeden moeglichen Datentypen implementieren.

Greetz
alcaeus

test3r 21. Jun 2005 13:49

Re: Funktion zur Datentypbestimmung
 
Dankeschön.
so einen Datentyp wie Variant hab ich benötigt.

barf00s 22. Jun 2005 08:02

Re: Funktion zur Datentypbestimmung
 
@idontwantaname: er fragte ja "Geht das?" und ich hab ihm geantwortet ;)
hatte dann aber keine zeit mehr ihm ausführlich zu antworten

idontwantaname 22. Jun 2005 08:38

Re: Funktion zur Datentypbestimmung
 
Zitat:

Zitat von barf00s
@idontwantaname: er fragte ja "Geht das?" und ich hab ihm geantwortet ;)
hatte dann aber keine zeit mehr ihm ausführlich zu antworten

ja, stimmt schon, das er so gefragt hat, trotzdem kann man mit so einer antwort nicht viel anfangen ;)
naja, ist ja egal, das gehört ja wirklich nicht zum thread ..


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 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