AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen-System

Ein Thema von theomega · begonnen am 11. Mai 2003 · letzter Beitrag vom 11. Mai 2003
Antwort Antwort
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
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 11. Mai 2003, 23:06
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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
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