Thema: Delphi Variablen-System

Einzelnen Beitrag anzeigen

Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

Variablen-System

  Alt 11. Mai 2003, 20:03
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:
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;
So weit so gut, man kann jetzt mit
Code:
setvar('Namen','Wert');
einen Wert setzten, außerdem dem Wert mit
Code:
var s:string;
begin;
s:=getvar('Namen');
wieder herholen.

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
  Mit Zitat antworten Zitat