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 aussehen kann:

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