Zum Inhalt

Die Eingabe-Syntax

SPM++ liest seine Daten aus Textdateien mit der Endung .spm. Normalerweise erstellen Sie diese komfortabel mit dem Stundenplaneditor SPE – Sie müssen die Syntax also nicht auswendig können. Trotzdem hilft es, den Aufbau zu kennen: Manchmal muss man einen einzelnen Datensatz von Hand nachsehen oder korrigieren.

Zweck dieser Seite

Dies ist eine technische Referenz. Für das tägliche Arbeiten reicht SPE – hier geht es darum, zu verstehen, was SPE erzeugt.

Grundregeln

Alle Ein- und Ausgabedateien sind Textdateien (.spm). Für ihren Inhalt gilt:

  • Jeder Datensatz endet mit einem Punkt .
  • Ein Datensatz besteht aus Begriffen, getrennt durch Leerzeichen oder Tabulator.
  • Ein Datensatz darf sich über mehrere Zeilen erstrecken; Leerzeilen sind erlaubt.
  • Jeder Begriff besteht aus Ziffern und/oder Buchstaben sowie erlaubten Sonderzeichen.
  • Groß- und Kleinschreibung ist relevant (Huber ist nicht gleich huber).
  • Einziges erlaubtes Sonderzeichen in Begriffen ist der Unterstrich (dazu die Relationszeichen in Bedingungsdateien).
  • Ein Kommentar beginnt mit zwei Schrägstrichen und reicht bis zum Zeilenende.
  • Ein Begriff darf dateiübergreifend nur einmal definiert werden.

Vordefinierte Begriffe

Diese Begriffe kennt SPM++ bereits und Sie dürfen sie einsetzen:

Kategorie Werte / Beispiele Bedeutung
Zahlen 1 bis 300 u. a. Klassengrößen, Blocklängen
Relationszeichen Gleich, Kleiner, Größer, Ungleich für Bedingungen an Unterrichte
Pseudo-Attribute ND, NV, Pseudo, PV, mp Unterrichte für Sonderzwecke (freie Tage, Mittagspausen, Sprechstunden, Präsenzen)
Block-Attribute Multi, Block, NmBlock, ZNBlock mehrere Stunden gleicher Klasse/Fach/Tag
Haus-Attribute Haus1Haus4, HausN Unterricht in einem bestimmten Schulhaus
Wochen-Attribute WocheA, WocheB, WocheAB nur 14-tägig stattfindende Unterrichte
Elementarzeiten Mo1, Mo2, … Fr11, Fr12 fester Zeitpunkt in der Woche
Stundenbezeichner s1s12 feste Stunde, Wochentag beliebig

Wochentage anpassbar

Die Kürzel Mo bis Fr für die Elementarzeiten lassen sich in den Einstellungen ändern (z. B. für Schulen mit Samstagsunterricht).

Reservierte Begriffe (nicht verwenden)

Folgende Wörter sind für das Programm reserviert und dürfen nicht als eigene Kürzel benutzt werden: sw_def, offen, vorbesetzt, streng_vorbesetzt, ausgeschlossen, fixiert, gesetzt, Hohl, Rand, frei, PsKol, TagOpt.

Regeln für Kürzel

  • Eindeutigkeit: Keine zwei verschiedenen Begriffe dürfen gleich heißen – Lehrerkürzel müssen sich von Fächerkürzeln unterscheiden usw. (Ausnahme: Räume dürfen Zahlen sein.)
  • Kein Begriff darf wie ein Wochentag heißen (Mo, Di, Mi, Do, Fr).
  • Groß-/Kleinschreibung genügt zur Unterscheidung.

Unterrichtsnummern klug wählen

Jeder Unterricht hat eine frei wählbare Unterrichtsnummer. Bewährt hat sich:

  • Klasse und Fach erkennbar einbauen (z. B. 8aD für Deutsch in der 8a),
  • mehrere Stunden desselben Fachs am Ende mit A, B, C, … durchnummerieren,
  • kurz halten – lange Nummern passen sonst nicht in die Zellen der Bildschirm-Pläne.

Ein Blick in echte Dateien

So sehen die Textdateien tatsächlich aus (Ausschnitte aus einem echten Schulungsdatensatz).

Fach.spm – ein Fach je Zeile, Kürzel + Punkt, danach optional der Klartext als Kommentar:

//Fächer
Al.  //Arbeitslehre
B.   //Biologie
D.   //Deutsch
Eth. // Ethik
E.   //Englisch

Unter.spm – ein Unterricht je Zeile, endet mit .:

U44A  D  1  WAIB  11AFO  vorm         .
U44C  D  1  WAIB  11AFO  vorm  Multi  .
U45C  E  1  PENI  11AFO  Mo6          .

Hier steht U44A für die Unterrichtsnummer, D das Fach, WAIB die Lehrkraft, 11AFO die Klasse, vorm die Zeittafel. U44C trägt zusätzlich das Attribut Multi (Mehrfachstunde), U45C liegt über die Elementarzeit Mo6 fest in der 6. Stunde am Montag.

Reihenfolge ist flexibel

SPM++ erkennt jeden Begriff an seiner DefinitionD ist ein Fach, WAIB eine Lehrkraft, 11AFO eine Klasse. Deshalb ist die Reihenfolge der Begriffe in einer Zeile nicht starr festgelegt; das Programm sortiert sie selbst richtig zu.

Klasse.spm – Klassen und ihre Teilung; | trennt unabhängige Aufteilungen:

01A = 01ARK 01AEth.                         // 1. BOS: kath. Religion / Ethik
10AH = 10AHl 10AHr | 10AHRK 10AHEth 10AHEv. // zwei parallele Teilungen

Welche Datei welche dieser Begriffe enthält und wie die übrigen Dateien aussehen, zeigt die Seite Beschreibungsdateien & Dateinamen.