
PYTHON-MINI-DOC                         
-----------------------------------------------------
Projekt:       Listenverwaltung
Datei:         sliste.py
Datum:         August 2002
Bearbeiter:    K Bombei, BICS
-----------------------------------------------------
import pickle
-----------------------------------------------------

class TListe:
   /* Allgemeine statische Liste zur Verwaltung beliebiger Objekte.
   /* Zum Bewegen in der Liste ist intern eine Listenmarke
   /* mitgefuehrt, die die jeweils aktuelle Listenposition bezeichnet.
   /* Alle Operationen werden auf der aktuellen  Position ausgefuehrt.                                 #
--
   def __init__(selbst):
        /* Auftrag : Listenobjekt erzeugen und initialisieren
        /* vorher  : -
        /* nachher : Lilaenge ist Null, AktuellePos ist 0.
--
   def First(selbst):
        /* Auftrag : Listenmarke auf das 1. Element setzen
        /* vorher  : Die Liste ist initialisiert und nicht leer.
        /* nachher : Aktuelle Position ist 1
        /*           Wenn IsEmpty , geschieht nichts.
--
   def Next(selbst):
        /* Auftrag : Die Listenmarke auf die naechste Position setzen.
        /* vorher  : Die Liste ist initialisert
        /* nachher : Die Marke steht auf der neuen aktuellen Position
        /*           Wenn EoList erreicht ist, geschieht nichts.
--
   def Previous(selbst):
        /* Auftrag : Die Listenmarke um eins zuruecksetzen
        /* vorher  : Die Liste ist nicht leer (wird nicht geprueft)
        /* nachher : Die Marke steht auf der neuen aktuellen Position.
        /*           Wenn die aktuelle Position 1 war, geschieht nichts
--
   def Last(selbst):
        /* Auftrag : Listenmarke auf das letzte Element der Liste setzen
        /* vorher  : Die Liste ist nicht leer (wird nicht geprueft).
        /* nachher : Letztes vorhandenes Element ist aktuelle Position
--
   def GetElement (selbst):
        /* Anfrage : Zugriff auf das aktuelle Element zum Lesen
        /* vorher  : Die Liste ist nicht leer.
        /* nachher : GetElement liefert das aktuelle Element.
        /* Fehler  : liefert "0", wenn AktuellePos vor oder hinter Liste
--
   def PutElement (selbst, Elem):
        /* Auftrag : Zugriff auf die aktuelle Position zum Schreiben
        /* vorher  : Die Liste ist initialisiert.
        /* nachher : Elem ist an aktuelle Position uebergeben
        /*           , ausser wenn AktuellePos vor oder hinter Liste
--
   def Append (selbst, Elem):
        /* Auftrag : Neues Element an das Ende der Liste anhaengen.
        /* Wenn die Liste leer war, ist das neue El. das erste.
        /* vorher  : Die Liste ist initialisiert
        /* nachher : Listenlaenge ist um eins erhoeht. Position am Ende.
--
   def EoList(selbst):
        /*
        /* Anfrage: Pruefen, ob das Ende der Liste erreicht ist.
        /* vorher : Die Liste ist initialisiert.
        /* nachher: "1", wenn Ende der Liste erreicht ist, d.h. die
        /*          Listenmarke hinter dem letzten belegten Element steht,
        /*          sonst "0"
--
   def IsEmpty(selbst):
        /* Anfrage: ob Liste leer ist
        /* vorher : Die Liste ist initialisiert.
        /* nachher: "1", wenn die Liste leer ist, sonst "0".
--
   def PositionOf (selbst, suchElem) :
        /* Effekt : liefert die (1.) Position des "suchElem" in der Liste,
        /* Fehler : liefert "0", wenn nicht vorhanden oder Liste leer.
        /* benutzt: Listenoperation "index" liefert erste Position
        /*          eines "gleichen" Elements.
--
   def Load (selbst, Dateiname):
        /* Auftrag: Liste aus externer Datei laden.
        /* vorher : Die Liste ist initialisiert, Datei existiert .
        /* nachher: Die Liste ist in den Arbeitsspeicher geladen;
        /*          Datei ist geschlossen; AktPos ist auf erstem Element;
        /*          Lilaenge entspricht der Listenlaenge, Rueckgabewert "1"
        /* Fehler : misslingt das Oeffnen der Datei, geschieht nichts,
        /*          Rueckgabewert "0"
        /* benötigt das Modul "pickle" (siehe "import")
--
   def Store(selbst, Dateiname):
        /* Auftrag: Liste in externe Datei speichern
        /* vorher : -
        /* nachher: Die Liste ist unter "Dateiname" gespeichert.
        /*          Die Datei ist geschlossen. Rueckgabewert "1".
        /* Achtung: Evtl. existierende Dateien werden ueberschrieben!!
        /* Fehler : Misslingt das Oeffnen der Datei, geschieht nichts.
        /*          Ist die Liste leer, wird nichts gespeichert.
        /*          Rueckgabewert "0"
        /* benötigt das Modul "pickle" (siehe "import")

