![]() |
Brauche dringend Hile funktion läuft net richtig
Hallo...
Ich brauche dringend etwas hilfe bei meiner Server -> Client lizenz vergabe. Ich habe eine funktion die Prüfen soll, ob sich eine Lizenz in der _BlockList befindet und nur freie Lizenzen die zur Anwendung passen zurückgeben soll. Vorweg: _AllLicenseList enthält alle gefunden Lizenzen im Format: lizenz1.ldf lizenz2.ldf usw.. _BlockedList enhält die geblockten Lizenzen für eine Anwendung z.B Testapp\lizenz1.ldf dann ist die lizenz datei lizenz1.ldf im ordner Testapp in gebrauch so und meine funktion soll jetzt die nächste freie Lizenz für die Anwendung (welche sich dann im Unterordner mit Namen der Anwendung befindet z.B Testapp) zurückgeben, dabei muss die _AllLicenseList durchlaufen werden, geprüft werden ob sich die Lizenz in der _BlockList befindet und es muss geprüft werden ob die eventuell freie Lizenz sich auch im Unterordner (z.B testapp) befindet. der name der Anwendung wird als ApplicationName übergeben dieses ist dann auch der unterordner auf dem Server der den Namen der Anwendung haben muss. ich hoffe ich habe es einigermaßen verständlich geschildert... meine Funktion (die leider nicht richtig funzt sieht so aus:
Delphi-Quellcode:
function TLicenseService.GetFreeLicenseFileName(const ApplicationName:string): String;
var i,y:integer; Lizenz:string; begin //der name der Lizenzdatei name muss zurückgegeben werden z.B Testapp\Lizenz1.ldf // wenn keine Lizenz mehr frei ist muss noFreeLicenses zurückgegeben werden i:=0; while i <= ServerForm._AllLicenses.Count-1 do begin y:=0; Lizenz:=ApplicationName+'\'+ServerForm._AllLicenses.Strings[i]; while y <= ServerForm._BlockedLicenses.Count -1 do begin if Lizenz=ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y] then begin Lizenz:='noFreeLicenses'; break; end; if (y >=ServerForm._BlockedLicenses.Count -1) and(fileexists(ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y])) then begin result:=lizenz; exit; end; y:=y+1; end; i:=i+1; end; result:=Lizenz; end; |
Re: Brauche dringend Hile funktion läuft net richtig
Kann das sein das das garnicht gehen kann
Delphi-Quellcode:
Wenn in "Lizenz" der ganze Pfad der Lizenz drin ist und in ServerForm._BlockedLicenses.Strings[y] nicht wird er nie eine Geblock Lizenz finden oder
while i <= ServerForm._AllLicenses.Count-1 do
begin y:=0; Lizenz:=ApplicationName+'\'+ServerForm._AllLicenses.Strings[i]; while y <= ServerForm._BlockedLicenses.Count -1 do begin if Lizenz=ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y] then begin |
Re: Brauche dringend Hile funktion läuft net richtig
Benutz den Debugger und schau dir die verschiedenen Werte an, oder gib sie per ShowMessage aus.
Ich vermute, dass in irgendeiner Variablen nicht das steht, was du erwartest. P.S. Hilfreich ist es auch, wenn du sagst, was nicht funktioniert. |
Re: Brauche dringend Hile funktion läuft net richtig
in Lizenz ist nicht der Ganze Pfad sondern nur der Applikations Name + lizenzdatei und wie gesagt der Applikations Name ist auf dem Server das Verzeichnis:
lizenz ist also z.B testapp\lizenz1.ldf wen ich an dieser Stelle
Delphi-Quellcode:
das and (fileexists(ApplicationName+'\'+ServerForm._Blocke dLicenses.Strings[y]) weglasse funktioniert alles soweit, dass ich zwar nur freie Lizenzen als result zurückbekomme, diese aber nicht unbedingt für die Applikation sind also sich nicht auf dem Server im Unterordner mit Namen der Applikation befinden.
if (y >=ServerForm._BlockedLicenses.Count -1) and(fileexists(ApplicationName+'\'+ServerForm._BlockedLicenses.Strings[y])) then
begin Wenn ich es so lasse wie es ist, gibt er immer die selbe lizenz zurück auch wenn sie geblockt ist. |
Re: Brauche dringend Hile funktion läuft net richtig
Ich habs irgendwie doch hinbekommen der Code sieht jetzt so aus:
Delphi-Quellcode:
function TLicenseService.GetFreeLicenseFileName(const ApplicationName:string): String;
var i,y:integer; Lizenz:string; begin //der name der Lizenzdatei name muss zurückgegeben werden z.B Testapp\Lizenz1.ldf // wenn keine Lizenz mehr frei ist muss noFreeLicenses zurückgegeben werden i:=0; while i <= ServerForm._AllLicenses.Count-1 do begin y:=0; if fileexists(extractfilepath(application.exename)+'Lizenzen\'+ApplicationName+'\'+ServerForm._AllLicenses.Strings[i]) then Lizenz:=ApplicationName+'\'+ServerForm._AllLicenses.Strings[i]; while y <= ServerForm._BlockedLicenses.Count -1 do begin if (Lizenz=ServerForm._BlockedLicenses.Strings[y]) or (not fileexists(extractfilepath(application.exename)+'Lizenzen\'+Lizenz)) then begin Lizenz:='noFreeLicenses'; break; end; if (y >=ServerForm._BlockedLicenses.Count -1) and (fileexists(extractfilepath(application.exename)+'Lizenzen\'+Lizenz)) then begin result:=lizenz; exit; end; y:=y+1; end; i:=i+1; end; result:=Lizenz; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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 by Thomas Breitkreuz