Dies ist eine alte Version des Dokuments!
Alle Züge sind in einer Textdatei gespeichert, die wie folgt aufgebaut ist:
150, 0, 060, 340,-1, 01008, 0, 0.14, 0.3, 0.1 200, 0, 120, 340,-1, 00119, 0, 0.14, 0.3, 0.1 40, 5, 400, 340,-1, 04321, 0, 0.14, 0.2, 0.1 x
Eine Zeile steht für einen Zug, dessen Eigenschaften in folgender Codierung aufgelistet sind (durch Kommata getrennt):
Diese Datei wird zeilenweise Ausgelesen und jede Zeile einem Listenelement zugewiesen, welches aus einer Zeile ein Wörterbuch macht, das dann ausgelesen werden kann:
def reader(datei): text = open(datei, "r") # Datei wird geoeffnet ausgabe = [] while 1==1: #Endlosschleife zum Abarbeiten der Date zeile = text.readline() # Datei wird nun Zeile fuer Zeile eingelesen zeile = zeile.strip('\n') # Ein Zeilenumbruchzeichen am Ende wird entfernt if zeile[0] == "x": break else: zug=list(zeile.split(',')) # Die Zeile wird in eine Liste transformiert zug=[z.strip() for z in zug] #Diese List wird nun in ein Woerterbuch eingelesen: wbzug = {"vavg" : int(zug[0]), "vist" : int(zug[1]), "besetzung" : int(zug[2]), "ankunftplan" : int(zug[3]), "ankunft" : int(zug[4]), "nummer" : int(zug[5]), "ort" : int(zug[6]), "auf1" : float(zug[7]), "auf2" : float(zug[8]), "auf3" : float(zug[9])} ausgabe.append(wbzug) # Die Woerterbuecher werden als "Anfangsreihenfolge" aufgelistet text.close() return ausgabe # Diese Liste wird zurueckgeliefert, die Datei ist eingelesen.
Eine eingelesene Zugliste, wie sie den Simulations- und Auswertungsprogrammen übergeben wird, sieht dann wie folgt aus (sehr klobig). Die Einzelnen Züge sind in Wörterbüchern, die wiederum sind in einer Liste geordnet (die „Reihenfolge“)
[{'ankunft': -1, 'nummer': 1008, 'besetzung': 60, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 150}, {'ankunft': -1, 'nummer': 119, 'besetzung': 120, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 200}, {'ankunft': -1, 'nummer': 4321, 'besetzung': 400, 'vist': 5, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.2, 'ankunftplan': 340, 'vavg': 40}, {'ankunft': -1, 'nummer': 1007, 'besetzung': 60, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 201}, {'ankunft': -1, 'nummer': 3119, 'besetzung': 120, 'vist': 0, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.7, 'ankunftplan': 340, 'vavg': 195}, {'ankunft': -1, 'nummer': 5421, 'besetzung': 400, 'vist': 5, 'auf1': 0.14, 'ort': 0, 'auf3': 0.1, 'auf2': 0.3, 'ankunftplan': 340, 'vavg': 48}]