03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

14.2 Einsatz von Datenströmen 293<br />

Durch diese Anforderungen wird ein externer Datenstrom aufgebaut, der sich aus<br />

den Zeichenketten “33”, “31” und “34” zusammensetzt, wobei diesen Zeichenketten<br />

jeweils ein Leerzeichen vorangestellt ist. Anschließend wird die Datei “bag.dat”<br />

geschlossen, d.h. von der Verarbeitung abgemeldet, so daß z.B. von einer anderen<br />

Anwendung auf den Inhalt dieser Datei zugegriffen werden kann.<br />

Hinweis: Als Inhalt der Datei “bag.dat” ergibt sich die Zeichenkette “ 33 31 34”.<br />

ˆ Grundsätzlich ist zu beachten, daß die Datei “bag.dat” durch ein geeignetes<br />

Betriebssystem-Kommando zu löschen ist, sofern die in ihr gespeicherten<br />

Daten entfernt werden sollen.<br />

Um die eingerichtete Datei “bag.dat” als Ausgabe-Datei zu beabeiten, haben wir<br />

die folgenden Basis-Methoden eingesetzt:<br />

ˆ “space”:<br />

Durch die Ausführung der Methode “space” wird ein Leerzeichen in denjenigen<br />

Datenstrom eingetragen, der als Empfänger-Objekt der Message “space”<br />

aufgeführt ist.<br />

ˆ “nextPutAll:”:<br />

Durch die Ausführung dieser Methode wird der Wert des Positionszeigers<br />

um “1” erhöht, und die einzelnen Objekte des als Argument aufgeführten<br />

Sammlers werden ab der Position, auf die der Positionszeiger verweist, sukzessive<br />

in den Datenstrom eingetragen, der als Empfänger-Objekt der Message<br />

“nextPutAll:” aufgeführt ist. Als Ergebnis-Objekt der Message “nextPutAll:”<br />

resultiert der als Argument angegebene Sammler.<br />

ˆ “close”:<br />

Um den Zugriff auf die durch das Empfänger-Objekt gekennzeichnete Datei zu<br />

beenden, muß die Datei geschlossen werden. Hierzu ist die Message “close” an<br />

ein Empfänger-Objekt zu richten, das als Ergebnis-Objekt aus der Ausführung<br />

der Message “pathName:” resultierte.<br />

Hinweis: Da die Zeichenketten – vor ihrer Übertragung in die Datei – zunächst in<br />

einem Zwischenspeicher (Puffer) gesammelt werden, wird durch die Message “close”<br />

zusätzlich sichergestellt, daß der Inhalt dieses Zwischenspeichers am Verarbeitungsende<br />

ordnungsgemäß in die Datei übernommen wird.<br />

Der Einsatz der Message “close” ist auch deshalb notwendig, weil eine als “geöffnet”<br />

gekennzeichnete Datei nicht parallel bearbeitet werden darf. Bei einem Verstoß erscheint<br />

ein Walkback-Fenster (siehe Anhang A.3) mit der Fehlermeldung “Smalltalk<br />

Express sharing violation”.<br />

Soll in der im Abschnitt 13.3 angegebenen Lösung – im Hinblick auf den alleinigen<br />

Einsatz eines Laufzeit-Systems – der Inhalt des Bags mit den erfaßten Punktwerten<br />

in einer Datei gesichert werden, so kann dazu die folgende Methode “schreibenDatei:sichernBag:”<br />

verwendet werden:

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!