Auf dieser Website werden Cookies gesetzt, die für den sicheren Betrieb technisch erforderlich sind. Siehe: Datenschutz

Codierung von Zeilenumbrüchen in Notes/LotusScript

von Christoph,
assono GmbH, Standort Kiel,

Jedes Betriebssystem hat seine eigenen Vorlieben, was Zeilenumbrüche angeht. Während unter Linux und Mac das ASCII-Zeichen 10 (LF) der Standard-Zeilenumbruch ist, nutzt Windows die Kombination der beiden Zeichen 13/10 (CR/LF).

Um dieser Tatsache gerecht zu werden und auf jedem Betriebssystem den richtigen Zeilenumbruch zu nutzen, könnte man auf die Idee kommen, eine entsprechende Konstante oder Variable in LotusScript zu definieren, die sozusagen das Betriebssystem entscheiden lässt, was es als Zeilenumbruch ansieht. Dazu wäre es naheliegend

NEWLINE = |
|

zu setzen und dabei zu erwarten, dass je nach Server/Rechner, wo der Code ausgeführt wird, die Variable den betriebssystemspezifischen Wert enthält. Ein genauerer Blick zeigt jedoch: Sowohl unter Linux als auch unter Windows besteht die Variable nur aus dem LF-Zeichen. Die Nutzung dieser Variablen zum Erzeugen von Zeilenumbrüchen ist in der Praxis jedoch unproblematisch, denn Notes speichert den gewünschten Text stets korrekt ab.

Nachdem wir einen ersten Blick auf den schreibenden Zugriff geworfen haben, folgt nun der lesende Zugriff. Hier stellt sich heraus, dass es tatsächlich vom Betriebssystem abhängige Unterschiede gibt. Unter Windows erhält man stets die Kombination CR LF, unter Linux den einfachen LF, wenn man ein und das selbe Feld eines Dokuments ausliest. Folgende Tabelle fasst zusammen, welche Werte Notes unter Windows ausliest, abhängig davon, was man als Zeilenumbruch in das Feld geschrieben hat.

schreibendlesend (Windows)lesend (Linux)
LFCR LFLF
CRCR LFLF
CR LFCR LFLF
LF CRCR LF CR LFLF LF

Somit ist es auf den ersten Blick "fast" egal, welche(s) Zeichen man beim Schreiben von Feldinhalten nutzt. Einzig LF CR sollte man nicht nutzen, weil es als doppelter Zeilenumbruch interpretiert wird.

Auf den zweiten Blick kann die Entscheidung über den richtigen Zeilenumbruch aber doch eine Rolle spielen: Nämlich dann, wenn man Input und Output vergleichen möchte. Nehmen wir als Beispiel ein Feld, das die vollständige Anschrift eines Datensatzes enthält und welches periodisch jede Nacht auf Aktualität (abhängig von anderen Feldern) geprüft wird. Dann ist es sinnvoll, nicht alle Anschrift-Felder bei jedem Agentendurchlauf zu überschreiben und die Dokumente zu speichern. Denn einerseits verursacht das unnötigen Rechenaufwand. Andererseits ist dadurch schwieriger nachzuvollziehen, wann wirklich jemand aus triftigem Grund das entsprechende Dokument bearbeitet und gespeichert hat. Hier sollte also beim Vergleich der Strings beachten, welche Art von Zeilenumbruch das Betriebssystem beim Auslesen verwendet, um den Vergleichsstring auf dieselbe Weise zu bauen.

Aus diesem Grund nutzen wir eine Variable newLine in unserem Notes-Framework die zur Laufzeit in einer Basis-Skriptbibliothek auf genau den Wert gesetzt wird, den das Betriebssystem nutzt. Somit müssen wir uns beim Programmieren von Strings mit Zeilenumbrüchen keine Gedanken über etwaige Codierungen machen, sondern können uns auf die Korrektheit der Variablen verlassen.

Sie haben weitere Fragen?

Gerne informieren wir Sie in einem kostenlosen Beratungsgespräch über unsere Angebote. Kontaktieren Sie uns dafür gerne unter +49 4307 900 408 oder vereinbaren Sie hier einen Termin.

Nächste Artikel in dieser Reihe:

Fachbeitrag HCL Notes HCL Domino Entwicklung Für Entwickler

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie haben Interesse an diesem Thema?

Gerne bieten wir Ihnen eine individuelle Beratung oder einen Workshop an.

Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen?

Wenn Sie mehr über unsere Angebote erfahren möchten, können Sie uns jederzeit kontaktieren. Gerne erstellen wir eine individuelle Demo für Sie.

assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de