is-Logo

D L I B - eigene Klassen
TStrListe

S. Spolwig

[Home | Delphi]

UNIT uStrListe;
(* ******************************************************************** *)
(*                                                                      *)
(* K L A S S E   : TStrListe                                            *)
(* -------------------------------------------------------------------- *)
(* Version       : 1.32                                                 *)
(* Autor         : S. Spolwig, OSZ-Handel I, 10997 Berlin               *)
(*                                                                      *)
(* Aufgabe       : Allgemeine statische Liste zur Verwaltung von        *)
(*                 strings.                                             *)
(*                 Zum Bewegen in der Liste ist intern eine Listenmarke *)
(*                 mitgefuehrt, die die jeweils aktuelle Listenposition *)
(*                 bezeichnet. Alle Operationen werden auf der aktuellen*)
(*                 Position ausgefuehrt.                                *)
(*                                                                      *)
(* Compiler      : Delphi 6.0                				*)
(* Aenderung     : V. 1.0   - 20-AUG-97                                 *)
(*                            24-FEB-00   an SListe angepasst           *)
(*                    1.32    09-FEB-02   procedure Init, SetElement    *)
(* ******************************************************************** *)
INTERFACE
(* ==================================================================== *)
const
   MAXLAENGE = 10000;
type
  TElement = string;
  TStrListe  = class (TObject)
   protected
    Kollektion  : array [0..MAXLAENGE + 1] of TElement;
    ListenLaenge,                 // Anzahl der belegten Elemente
    AktuellePos : Word;
    procedure quicksort(anfang, ende: Word); virtual;
   public
    constructor Create;  virtual;
    procedure Init;      virtual;
    procedure First;     virtual;
    procedure Next ;     virtual;
    procedure previous;  virtual;
    procedure Last ;     virtual;
    function  GetElement : TElement;         virtual;
    procedure SetElement (Elem : TElement);  virtual;
    procedure Append (Elem : TElement);      virtual;
    procedure Remove;                        virtual;
    procedure RemoveAll;                     virtual;
    function  SearchFor (Elem : TElement) : integer; virtual;
    procedure Sort;                          virtual;
    function  GetLen  : integer;             virtual;
    function  EoList  : boolean;             virtual;
    function  IsFirst : boolean;             virtual;
    function  IsLast  : boolean;             virtual;
    function  IsEmpty : boolean;             virtual;
    function  IsFull  : boolean;             virtual;
  end;
(*  ----------------- B e s c h r e i b u n g -------------------------
Oberklasse     : TObject
Bezugsklassen  : -
Methoden
--------
Create
  Auftrag : leere L. erzeugen
  vorher  : -
  nachher : ListenLaenge ist 0, AktuellePos ist 0.
Init
  Auftrag : L. init.
  vorher  : L. ist erzeugt
  nachher : ListenLaenge ist 0, AktuellePos ist 0.
First
  Auftrag : Listenmarke auf das 1. (vorhandene) Element setzen
  vorher  : Die Liste ist nicht leer
  nachher : Aktuelle Position ist 1.
            Ist die Liste leer , geschieht nichts
Next
  Auftrag : Die Listenmarke auf das naechste Element setzen.
  vorher  : Die Liste ist nicht leer und akt. Pos ist nicht letztes El.
  nachher : Die Marke steht auf der neuen aktuellen Position
            ist die Liste leer oder EoList erreicht, geschieht nichts.
Previous
  Auftrag : Die Listenmarke um eins auf das vorhergehende Element zuruecksetzen
  vorher  : Die Liste ist nicht leer und akt. Pos ist nicht 1. Element.
  nachher : Die Marke steht auf der neuen aktuellen Position.
            Ist die Liste leer oder die aktuelle Position war 1, geschieht nichts.
Last
  Auftrag : Listenmarke auf das letzte Element der Liste setzen
  vorher  : Die Liste ist nicht leer.
  nachher : Letztes vorhandenes Element ist aktuelle Position
GetElement
  Anfrage : Zugriff auf das aktuelle Element zum Lesen
  vorher  : Die Liste ist nicht leer.
  nachher : GetElement liefert das aktuelle Element.
SetElement (Elem : TElement)
  Auftrag : Zugriff auf das aktuelle Element zum Schreiben
  vorher  : Die Liste ist initialisiert.
  nachher : Elem ist an aktuelle Position uebergeben
Append (var Elem : TElement)
  Auftrag : Neues Element am Ende der Liste erzeugen und Elem uebergeben.
            Wenn die Liste leer war, ist das neue El. das erste.
  vorher  : Die Liste ist initialisiert
  nachher : Listenlaenge ist um eins erhoeht. Ist MAXLISTE erreicht,
            geschieht nichts.
Remove
  Auftrag: Das aktuelle Element loeschen.
  vorher : Die Liste ist nicht leer.
  nachher: Das aktuelle Element ist aus der Liste entfernt. Die Listen-
           laenge ist um eins vermindert. AktuellePos ist 0.
EoList
  Anfrage: ob das Ende der Liste erreicht ist.
  vorher : Die Liste ist initialisiert.
  nachher: True, wenn Ende der Liste erreicht ist. Die Listenmarke
           steht hinter dem letzten belegten Element.
IsEmpty
  Anfrage: ob Liste leer ist
  vorher : Die Liste ist initialisiert.
  nachher: True, wenn die Liste leer ist.
GetLen : integer;
  Anfrage: gibt Listenlaenge zurueck
  vorher : Liste ist initialisiert
  nachher: -
SearchFor (Elem : TElemt) : integer;
  Anfrage: Elem in der Liste suchen
  vorher: -
  nachher: liefert Position in der Liste. Wenn nicht vorhanden, dann 0
  
Sort
  Auftrag: Liste sortieren
  vorher : -
  nachher: Liste ist aufsteigend sortiert
----------------------------------------------------------------------- *)

 

 05. Oktober 2008   ©  Siegfried Spolwig

page_top