Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variable mit mehreren Werten vergleichen ohne "OR" ? (https://www.delphipraxis.net/81480-variable-mit-mehreren-werten-vergleichen-ohne.html)

MaBuSE 28. Nov 2006 12:26

Re: Variable mit mehreren Werten vergleichen ohne "OR&a
 
Zitat:

Zitat von Hawkeye219
hier eine Erweiterung deiner Idee:

Stimmt, dynamisches Array ist an der Stelle Schwachsinn ;-)

AnsiIdentText kannte ich auch noch nicht.
Man lernt ja nie aus.

Die Funktion gibts schon in D7 und sieht wie folgt aus:
Delphi-Quellcode:
{ *********************************************************************** }
{ Delphi Runtime Library                                                 }
{ Copyright (c) 1995-2001 Borland Software Corporation                   }
{ *********************************************************************** }
unit StrUtils;
...
function AnsiIndexText(const AText: string;
  const AValues: array of string): Integer;
var
  I: Integer;
begin
  Result := -1;
  for I := Low(AValues) to High(AValues) do
    if AnsiSameText(AText, AValues[I]) then
    begin
      Result := I;
      Break;
    end;
end;
...
Das ist also fast das gleiche wie unser Beispiel. :mrgreen:

In der AnsiSameText wird schliesslich noch eine Weitere Funktion aufgerufen, die dann noch eine aufruft und diese ruft dann folgende Win API auf:
Delphi-Quellcode:
function CompareString; external kernel32 name 'CompareStringA';
Die im Grunde aber auch nur ein aText = aValues[I] macht ;-)

In eigener Sache (Zitat aus Borland VCL / RTL)
Anmerkung zum Zitat:
Die Verwendung von Zitaten ist durch das Urheberrecht geregelt und unter bestimmten Voraussetzungen gestattet, ohne dass eine Erlaubnis des Urhebers eingeholt oder diesem eine Vergütung gezahlt werden müsste (§ 51 UrhG in Deutschland)
Es handelt sich hier um ein Kleinzitat.
Kleinzitate dürfen weiterreichend verwendet werden. Der Zitierzweck muss erkennbar sein. Das Zitat muss also in irgendeiner Beziehung zu der eigenen Leistung stehen, beispielsweise als Erörterungsgrundlage. Der Umfang des Zitats muss dem Zweck angemessen sein.
(frei zitiert aus Wikipedia: Zitat)

Vjay 28. Nov 2006 14:54

Re: Variable mit mehreren Werten vergleichen ohne "OR&a
 
Naja letzten Endes muss man ja den String vergleichen (wenn man nicht hashed).
Aber er spart sich die ganzen Jumps, sehr elegant, find das auf irgend eine komplizierte Sichtweise schön :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 Uhr.
Seite 3 von 3     123   

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