Hilfe bei Projekt - kleines Additionsprogramm mit Einlesen v

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fk132
User
Beiträge: 1
Registriert: Samstag 24. Januar 2009, 22:19

Hallo zusammen,

Mein Vorhaben besteht darin, eine kleine Auswertung einer Textdatei zu machen. Diese trägt den einfallsreichen Namen list.txt

Aus ihr soll folgendes entnommen werden können,
- Name des Angreifers (linke Seite zweite Zeile)
- Name des Verteidigers (rechte Seite zweite Zeile)
- Erbeutetes Silber (Gewinner, erste zeile, kann linke oder rechte Seite von Zeile 2 sein)
- EP (linke Seite)
- EP (rechte Seite)
- Summierung aller oben angeführten Punkte sowie deren Zuordnung zu den Namen

Die Auflistung erfolgt immer im selben Schema und wird vom System in oben genannter Textdatei folgendermaßen abgespeichert:

Code: Alles auswählen

Sir Tacafriskus gewinnt und erbeutet 5 Silbertaler
Sir Tacafriskus erhält 2 EP und Latte erhält 0 EP.
Schaden - Angreifer: 159 / Schaden - Verteidiger: 0

Odysseus gewinnt und erbeutet 27 Silbertaler
Odysseus erhält -3 EP und Sir Tacafriskus erhält 1 EP.
Schaden - Angreifer: 368 / Schaden - Verteidiger: 0
 
Sir Tacafriskus gewinnt und erbeutet 5 Silbertaler
Sir Tacafriskus erhält 2 EP und Sir O Ropax erhält 0 EP.
Schaden - Angreifer: 511.6 / Schaden - Verteidiger: 0

Sir Tacafriskus gewinnt und erbeutet 8 Silbertaler
Sir Tacafriskus erhält 1 EP und Caradoc erhält 1 EP.
Schaden - Angreifer: 765 / Schaden - Verteidiger: 19.8

Sir Tacafriskus gewinnt und erbeutet 1 Silbertaler
Sir Tacafriskus erhält 3 EP und Bundschuh erhält 0 EP.
Schaden - Angreifer: 668 / Schaden - Verteidiger: 195
Bisher habe ich folgendes beisammen:

Code: Alles auswählen

# -*- coding: cp1252 -*-
import re

silbertaler = "Ritter2 gewinnt und erbeutet 8 Silbertaler"
ep = "Ritter1 erhält 3 EP und Ritter2 erhält 0 EP."
schaden = "Schaden - Angreifer: 61.3 / Schaden - Verteidiger: 267.6"

searchSilbertaler = re.search(r"(.*) gewinnt und erbeutet (.*) Silbertaler", silbertaler, re.I)
searchEp = re.search(r"(.*) erhält (.*) EP und (.*) erhält (.*) EP.", ep, re.I)
searchSchaden = re.search(r"Schaden - Angreifer: (.*) / Schaden - Verteidiger: (.*)", schaden, re.I)

silbertalerGewinner = searchSilbertaler.group(2)

nameSpielerEins = searchEp.group(1)
nameSpielerZwei = searchEp.group(3)

gewinner = searchSilbertaler.group(1)
if gewinner == nameSpielerEins:
    verlierer = nameSpielerZwei
else:
    verlierer = nameSpielerEins

epSpielerEins = searchEp.group(2)
epSpielerZwei = searchEp.group(4)

schadenSpielerEins = searchSchaden.group(1)
schadenSpielerZwei = searchSchaden.group(2)

print "Gewinner:", gewinner
print "Verlierer:", verlierer
print ""
print gewinner, "bekommt", silbertalerGewinner, "Silbertaler"
print ""
print nameSpielerEins, "bekommt", epSpielerEins, "EP"
print nameSpielerZwei, "bekommt", epSpielerZwei, "EP"
print ""
print "Schaden Ritter1:", schadenSpielerEins
print "Schaden Ritter2:", schadenSpielerZwei

Jetzt meine Frage, kann mir jemand den fehlenden Code sagen, ich habe leider nur sehr sehr sehr geringe Kenntnisse im Programmieren, und diese auch nur aus diversen Tutorials.

Ich bin Euch jetzt schon sehr dankbar.

mfg
Antworten