![]() |
IsGUID?
Hallo,
kennt jemand eine Funktion, mit der man verlässlich feststellen kann, ob ein String eine GUID ist, die mit SysUtils.GUIDToString(SysUtils.CreateGUID) erzeugt wurde. |
Re: IsGUID?
Zitat:
...:cat:... |
Re: IsGUID?
[quote="sakura"]
Zitat:
Ist eigentlich logisch, deswegen habe ich es nicht so gemeint. Da es ja mehrere GUID-Formate gibt, sollte eine Überprüfung stattfinden, ob der der String überhaupt eine GUID ist, bzw. ob der String eine GUID in diesem Format ist. Freundliche Grüße und schöne Feiertage! |
Re: IsGUID?
Falls du GUIDs brauchst, ich kenne einen VBS-Befehl zum kreieren jener. :angel2:
|
Re: IsGUID?
Zitat:
![]() Hey Du... Ja du... willst Du ein G kaufen? Ich hab da'n Tip.. drück einfach Strg+Shift+G in der IDE ;) Die Schweizer haben dafür auch einen Tip für Delphi: ![]() @Topic Eine GUID sieht ja wie folgt aus: {4F65CB3B-3CE3-4CB8-8D98-DB1BE875F92B} Prüfe also, ob die GUID von { } eingeschlossen ist und insgesamt (inkl. { und } ) 38 Zeichen lang ist. Dann prüfst Du, ob an Pos 10, 15, 20 und 25 ein - steht und der Rest zwischen 0 und F liegt (Hex 0-15) ;) Vorschlag
Delphi-Quellcode:
function IsGUID(aString: string): boolean;
function ChkSub(aString: string; iStart, iEnd: integer): boolean; var n: integer; begin Result := True; for n := iStart to iEnd do if aString[n] in ['0'..'9', 'A'..'F'] then else begin Result := False; break; end; end; begin Result := (Length(aString) = 38) and (aString[1] = '{') and (aString[10] = '-') and (aString[15] = '-') and (aString[20] = '-') and (aString[25] = '-') and (aString[38] = '}') and ChkSub(aString, 2, 9) and ChkSub(aString, 11, 14) and ChkSub(aString, 16, 19) and ChkSub(aString, 21, 24) and ChkSub(aString, 26, 37); end; |
Re: IsGUID?
Danke für die Funktion. Wer kennt sich mit regulären Ausdrücken aus und kann eine GUID als regulärer Ausdruck darstellen?
|
Re: IsGUID?
Ich glaube,
Code:
müsste es tun..
\{[0-9A-F]{8}(-[0-9A-F]{4}){3}-[0-9A-F]{8}\}
|
Re: IsGUID?
Hallo,
ohne reguläre Ausdrücke könnte man so prüfen:
Delphi-Quellcode:
Gruß Hawkeye
function CLSIDFromString (psz: PWideChar; out clsid: TGUID): HResult; stdcall;
external 'ole32.dll' name 'CLSIDFromString'; function IsValidGUID (const aString: WideString): Boolean; var Dummy : TGUID; begin Result := Succeeded(CLSIDFromString(PWideChar(aString), Dummy)); end; |
Re: IsGUID?
Zitat:
|
Re: IsGUID?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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