![]() |
Variablen-System
Hallo Leute
ich brauche für eine Anwendung je nach Parameter unterschiedlich viele Variablen mit unterschiedlichen Namen. Außerdem muß ich auf die Variablen per Namen zugreifen können ('variable'+inttostr(i)'). Dazu habe ich jetzt diese Funktionen hier geschrieben:
Delphi-Quellcode:
So weit so gut, man kann jetzt mit
UNIT vars;
INTERFACE type TVar=record titel,value:string; end; var variables:array of TVar; procedure setvar(name,value:string); function getvar(name:string):string; function isset(name:string):boolean; IMPLEMENTATION function isset(name:string):boolean; var i:integer; begin; result := false; for i:= low(variables) to high(variables) do begin; if variables[i].titel = name then result := true; end; end; procedure setvar(name,value:string); var i:integer; begin; if name='' then begin; //Ausgaben nicht speichern header; writeln(value); end else begin; //Speichern if isset(name) then begin; for i:= low(variables) to high(variables) do begin; if variables[i].titel = name then variables[i].value := value; end; end else begin; setlength(variables,length(variables)+1); variables[high(variables)].titel := name; variables[high(variables)].value := value; end; end; end; function getvar(name:string):string; var i:integer; begin; result := ''; for i:= low(variables) to high(variables) do begin; if variables[i].titel = name then result := variables[i].value; end; end;
Code:
einen Wert setzten, außerdem dem Wert mit
setvar('Namen','Wert');
Code:
wieder herholen.
var s:string;
begin; s:=getvar('Namen'); Das geht auch problemlos nur ist die Sache recht langsam. Ich muß recht oft auf die Variablen zugreifen und jedes mal muß er das ganze Array nach der Variable absuchen. Wer hat (wenn auch nur in der Theroie) eine bessere Idee, die ungefähr den gleichen Effekt hat. Ich brauche hier jetzt keine Code-Beispiele sondern einfach Ideen. Danke TO |
Ein Grund, dass es so langsam ist, ist der, dass jedesmal das Arrray komplett durchsucht wird. Eine Lösung wäre, ein Hash (=assoziatives Array) zu benutzen. Komponenten gibts bei Torry.
Dann würde der zeitaufwändigste Part, nämlich das Durchsuchen des Arrays, wegfallen. Du müsstest einfach den Namen der Variabblen als Array-Index verwenden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 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