|
@@ -1,27 +1,58 @@
|
|
#Entfernungen berechnen
|
|
#Entfernungen berechnen
|
|
#Python 2.7
|
|
#Python 2.7
|
|
#Author Gunnar Egenolff
|
|
#Author Gunnar Egenolff
|
|
-#letzte Bearbeitung 8.5.19
|
|
|
|
-
|
|
|
|
|
|
+#letzte Bearbeitung 16.5.19
|
|
|
|
+import re
|
|
|
|
+debug = 1
|
|
#2x fuer Start und Ziel
|
|
#2x fuer Start und Ziel
|
|
|
|
|
|
#Eingabe Ort
|
|
#Eingabe Ort
|
|
|
|
+eingabe = raw_input("Ort: ")
|
|
|
|
+s = list(eingabe)
|
|
|
|
+if debug == 1: print(s)
|
|
|
|
+laenge = len(s)
|
|
|
|
+if debug == 1: print(laenge)
|
|
|
|
|
|
#Umwandlung Ortsname in Suchbegriff mit Toleranz
|
|
#Umwandlung Ortsname in Suchbegriff mit Toleranz
|
|
|
|
|
|
|
|
+x = []
|
|
|
|
+i = 0
|
|
|
|
+while i <= laenge - 1: #legt Liste mit regulaeren Ausdruecken an
|
|
|
|
+ if debug == 1: print "si ", s[i]
|
|
|
|
+ t = s[:]
|
|
|
|
+ t.insert(i,".?.?") #je ein Buchstabe wird durch Punkt ersetzt
|
|
|
|
+ del t[i+1]
|
|
|
|
+ mod = "".join(t)
|
|
|
|
+ x.append(r"\t" + mod + r"\s") #stellt sicher, dass Name nicht Teil eines laengeren Namens
|
|
|
|
+ if debug == 1: print "t", t
|
|
|
|
+ if debug == 1: print "s", s
|
|
|
|
+ if debug == 1: print "x", x
|
|
|
|
+
|
|
|
|
+ i = i + 1
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
#zeilenweises Auslesen der Ortedatei, Abgleich mit Suchbegriff
|
|
#zeilenweises Auslesen der Ortedatei, Abgleich mit Suchbegriff
|
|
-input = open("DE.tab")
|
|
|
|
|
|
+
|
|
linenr = 0
|
|
linenr = 0
|
|
-Suchbegriff = "Neustadt"
|
|
|
|
-while True:
|
|
|
|
- line = input.readline()
|
|
|
|
- if not line: break
|
|
|
|
- linenr += 1
|
|
|
|
- if Suchbegriff in line:
|
|
|
|
- Liste = line.split("\t")
|
|
|
|
- print Liste[7], Liste[3]
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- #Anzeige Suchvorschlaege, Aufforderung zur Auswahl
|
|
|
|
|
|
+j = 0
|
|
|
|
+while j <= len(x) - 1: #fragt nacheinander alle Versionen des Ortsnamens ab
|
|
|
|
+ input = open("DE.tab")
|
|
|
|
+ Suchbegriff = str(x[j])
|
|
|
|
+ while True: # liest Datenbank zeilenweise aus
|
|
|
|
+ line = input.readline()
|
|
|
|
+ if not line: break
|
|
|
|
+ linenr += 1
|
|
|
|
+ if re.search(Suchbegriff, line): #findet Ortsname
|
|
|
|
+ Liste = line.split("\t")
|
|
|
|
+ print Liste[7], Liste[3], Liste[4], Liste[5] #Ausgabe Plz, Ortsname, lon, lat
|
|
|
|
+ if debug == 1: print j
|
|
|
|
+ j+=1
|
|
|
|
+ line = True
|
|
|
|
+
|
|
|
|
+ #Aufforderung zur Auswahl
|
|
|
|
|
|
#Berechnung der Entfernung
|
|
#Berechnung der Entfernung
|