Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1516:logistische_probleme:einleseprogramm

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):

  1. Maximalgeschwindigkeit
  2. Istgeschwindigkeit
  3. Personen an Bord
  4. Planmäßige Ankunftzeit
  5. tatsächliche Ankunftszeit (-1, wenn noch nicht angekommen)
  6. Zugnummer zur Identifikation
  7. Ort auf der Strecke
  8. Prozentsatz der auf Kategorie 1 umsteigen wird
  9. Prozentsatz der auf Kategorie 2 umsteigen wird
  10. Prozentsatz der auf Kategorie 3 umsteigen wird

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}]
ws1516/logistische_probleme/einleseprogramm.1458649670.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)