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
----------------------------------------------------------------------- *)
|