Seite 1 von 1

Code Fehler?

Verfasst: Donnerstag 29. März 2012, 17:03
von hans.mueller1206
Hallo, ich mache Fortschritte in der Programmierung, aber jetzt komme ich nicht weiter.. ich habe diesen Code hier eigentlich doch richtig abgeändert (denke ich zu mindest) aber er sagt immer wieder "Keinen Stauf auf der xy gefunden". Ich habe auch keine Ahnung was ich falsch gemacht haben könnte, ich bitte um Hilfe. Danke

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib
import xml.dom.minidom
import random
import re
from xml.dom.minidom import Node

from plugin import *


class fussiPlugin(Plugin):

	@register("de-DE", ".*(stau) (.*)")
	
	def onlyone(self, speech, language, regex):
		searchString = regex.group(regex.lastindex).strip()
		gefunden = 0;
		html = urllib.urlopen("http://www.freiefahrt.info/upload/lmst.de_DE.xml").read()
		dom = xml.dom.minidom.parseString(html)	
		for node in dom.getElementsByTagName('item'):
			sendung = node.getElementsByTagName('title')
			sendeinfo = sendung[0].firstChild.data
			if re.match(".*"+searchString+".*", sendeinfo, re.IGNORECASE):
				gefunden = 1;
				self.say(sendeinfo, sendeinfo.split("(")[0].replace(":", "").replace("(*)", ''))
		if gefunden == 0:
			self.say(u"Keinen Stau auf der \""+searchString+"\" gefunden")
		self.complete_request()

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 17:09
von webspider
Protip: Es ist leichter (und lehrreicher) Code von Grund auf zu erstellen und zu erweitern anstatt fertigen zu nehmen um hinterher nach Fehlern zu jagen.

Davon mal abgesehen: Denk doch mal logisch nach was von der Ausführung her passieren muss, damit du diese Meldung erhälst.

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 17:15
von hans.mueller1206
Also er sucht nach einem Stau auf der A3 z.B. und wenn er keinen findet soll er eben diesen Satz sagen, aber es gibt einen Stau auf der A3!! Deswegen kann ich es ja nicht verstehen, warum er ihn nicht ausspuckt

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 17:17
von webspider
Verstehst du auch nur eine einzige Zeile von dem von dir geposteten Code?

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 17:21
von hans.mueller1206
ich denke schon das ich das tue,
also am anfang oben unter Register steht der EIngabe Befehl.. also ich kann sagen Stau und dann xy dahinter und er sucht die xml datei danach ab!
Und zwar sucht er im title, weil das auch da angegeben wurde. Komisch ist eben nur das wenn ich sage Stau A3 das er dann keinen Stau findet. Ach so und das self.say(sendeinfo, sendeinfo.split("(")[0].replace(":", "").replace("(*)", '')) <--- soll den Doppelpunkt bei der Meldung durch eine Leerzeile ersetzen, ich denke aber das habe ich richtig gemacht! Ich hoffe ich habe das Quiz bestanden... wenn du aber einen Fehler siehst, wäre es nett wenn du mir helfen würdest :-)

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:07
von /me
Offensichtlich sehen einige Daten anders aus als du glaubst.

Wenn du keine Entwicklungsumgebung mit eingebautem Debugger hast um dir den Programmablauf und die Daten währenddessen anzuschauen, dann verwende doch einfach ein paar print-Statements um dir relevante Werte ausgeben zu lassen. sendeinfo und searchString wären da direkt vor dem match eine gute Wahl.

BTW, an Beginn und Ende eines bestehenden regulären Ausdrucks jeweils .* anzufügen ist merkwürdig und führt im Endeffekt nur zu verlängerter Laufzeit durch Backtracking. Warum verwendest du nicht einfach re.search (siehe Matching vs. Searching)?

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:11
von hans.mueller1206
ich muss gestehen, ich verstehe nichts :-)

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:18
von /me
hans.mueller1206 hat geschrieben:ich muss gestehen, ich verstehe nichts :-)
Dann fangen wir halt langsam an.

Woher weißt du, dass dein Code wirklich die passenden Daten und das zugehörige Suchmuster hat?
Was glaubst du, was in searchString und sendeinfo stehen müsste?
Was steht wirklich in searchString und sendeinfo?

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:30
von hans.mueller1206
also ich weiß es nicht, ich müsste dafür wahrscheinlich irgendwie die xml datei auslesen können, aber ich weiß nicht wie!
kannst du uns mal in ts besuchen? Das wäre super!

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:39
von webspider
/me hat geschrieben:Woher weißt du, dass dein Code wirklich die passenden Daten und das zugehörige Suchmuster hat?
Was glaubst du, was in searchString und sendeinfo stehen müsste?
Was steht wirklich in searchString und sendeinfo?
Bild

Sorry, could not resist :mrgreen:

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 21:47
von pillmuncher
hans.mueller1206 hat geschrieben:kannst du uns mal in ts besuchen?
In Traunstein?

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 22:10
von hans.mueller1206
in teamspeak, also wenn hier jmd. zeit hat und lust hat zu helfen :-) ist er herzlich eingeladen

Re: Code Fehler?

Verfasst: Donnerstag 29. März 2012, 22:41
von /me
hans.mueller1206 hat geschrieben:also ich weiß es nicht, ich müsste dafür wahrscheinlich irgendwie die xml datei auslesen können, aber ich weiß nicht wie!
Das ist der falsche Ansatz. Wenn du wissen möchtest, welcher Wert zu einem bestimmten Zeitpunkt an einen bestimmten Namen gebunden ist, dann musst du ihn zu dem Zeitpunkt ausgeben. Ich habe jetzt zweimal versucht, dir dafür die Verwendung von print zu empfehlen. Da ich nicht glaube, dass ich mich völlig unverständlich ausgedrückt habe gehe ich davon aus, dass du mit dem Ratschlag nichts anfangen kannst. Das wiederum bringt mich zu dem Schluss, dass dir noch die absoluten Grundlagen von Python fehlen.

Das Python-Tutorial bietet einen guten Einstieg zum Lernen.
hans.mueller1206 hat geschrieben:kannst du uns mal in ts besuchen? Das wäre super!
Nein, das kann und will ich nicht. Ich bin hier im Forum weil ich anderen bei Problemen mit Python helfen und selber Neues hinzulernen möchte. Ich möchte keinen Audio-Kurs in Python-Programmierung halten und ich möchte auch nicht als unbezahlter Codieraffe eingesetzt werden.

Re: Code Fehler?

Verfasst: Freitag 30. März 2012, 07:28
von webspider
Ich befürchte auch, dass das nichts wird, wenn Hans nicht zumindest die Grundlagen erlernt hat. Von daher bin ich raus, amüsante Steilvorlagen hin oder her.