Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Programm, das Datumsliste mit dazugehörigem Wert erstell

  Alt 14. Jan 2006, 16:53
Hallo.

Es ist bei einer solchen Aufgabe immer vorteilhaft, wenn man Darstellung und Funktionalität weitgehend voneinander entkoppelt:

Delphi-Quellcode:
function CreateRandomList(dtLow, dtHigh: TDate;
  rndLow, rndHigh: Integer): TStringList;
var
  i: Integer;
begin
  Result := TStringList.Create;
  for i := Trunc(dtLow) to Trunc(dtHigh) do
    Result.Add(Format('%s %d', [DateToStr(i), rndLow + Random(rndHigh - rndLow)]));
end;
Die Prüfungen kann man dann in einer kapselnden Funktion unterbringen:

Delphi-Quellcode:
function CheckCreateRandomList(dtLow, dtHigh: TDate;
  rndLow, rndHigh: Integer): TStringList;
var
  dt: TDateTime;
  i: integer;
begin
  if dtLow > dtHigh then
  begin
    dt := dtLow;
    dtLow := dtHigh;
    dtHigh := dt;
  end;
  if rndLow > rndHigh then
  begin
    i := rndLow;
    rndLow := rndHigh;
    rndHigh := i;
  end;
  Result := CreateRandomList(dtLow, dtHigh, rndLow, rndHigh);
end;
Die gezeigte Kapsel soll aber nur das Prinzip verdeutlichen. Im konkreten Beispiel gehört der Prüf-Code wohl eher zur Benutzerschnittstelle. Eine so enge Kopplung zwischen dem Prüfen der Argumente und dem Ausführen der Funktion ist nicht immer gewünscht. Fehlt eigentlich nur noch der Test-Code.

Grüße vom marabu
  Mit Zitat antworten Zitat