Thema: Delphi IsGUID?

Einzelnen Beitrag anzeigen

Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#5

Re: IsGUID?

  Alt 28. Dez 2006, 19:52
Zitat von fLaSh11:
Falls du GUIDs brauchst, ich kenne einen VBS-Befehl zum kreieren jener.
http://www.jedidjah.dds.nl/Alphabet/SesameL/Lefty.jpg
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: http://www.swissdelphicenter.ch/de/showcode.php?id=1172


@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;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat