57 lines
2.4 KiB
Python
57 lines
2.4 KiB
Python
import csv
|
|
import sqlite3
|
|
|
|
class Import:
|
|
def __init__(self, pfad_datenbank):
|
|
self.pfad_datenbank = pfad_datenbank
|
|
pass
|
|
|
|
def string_to_float(self, zahl):
|
|
zahl = zahl.replace(',', '.')
|
|
return float(zahl)
|
|
|
|
def import_koordinaten_lh_tachymeter(self, pfad_datei):
|
|
liste_punktnummern = []
|
|
liste_punktnummern_vorher = []
|
|
liste_punktnummern_vorher_db = []
|
|
Import_abbrechen = False
|
|
|
|
|
|
with open (pfad_datei, newline='', encoding='utf-8') as csvfile:
|
|
con = sqlite3.connect(self.pfad_datenbank)
|
|
cursor = con.cursor()
|
|
liste_punktnummern_db = [r[0] for r in cursor.execute("SELECT DISTINCT punktnummer FROM Netzpunkte").fetchall()]
|
|
cursor.close()
|
|
con.close()
|
|
|
|
r = csv.reader(csvfile, delimiter=';')
|
|
for row in r:
|
|
liste_punktnummern.append(row[0])
|
|
if row[0] in liste_punktnummern_vorher:
|
|
Import_abbrechen = True
|
|
print(f"Der Import wurde abgebrochen, weil in der Datei {pfad_datei} Punktnummern doppelt vorhanden sind. Bitte in der Datei ändern und Import wiederholen.")
|
|
break
|
|
|
|
liste_punktnummern_vorher.append(row[0])
|
|
|
|
if row[0] in liste_punktnummern_db:
|
|
Import_abbrechen = True
|
|
print(f"Der Import wurde abgebrochen, weil mindestens ein Teil der Punktnummern aus der Datei {pfad_datei} bereits in der Datenbank vorhanden ist. Bitte in der Datei ändern und Import wiederholen.")
|
|
break
|
|
liste_punktnummern_vorher_db.append(row[0])
|
|
|
|
if Import_abbrechen == False:
|
|
con = sqlite3.connect(self.pfad_datenbank)
|
|
cursor = con.cursor()
|
|
|
|
with open(pfad_datei, newline='', encoding='utf-8') as csvfile:
|
|
r = csv.reader(csvfile, delimiter=';')
|
|
for row in r:
|
|
cursor.execute(
|
|
"INSERT INTO Netzpunkte (punktnummer, naeherungx_lh, naeherungy_lh, naeherungz_lh) VALUES (?, ?, ?, ?)",
|
|
(row[0], self.string_to_float(row[1]), self.string_to_float(row[2]), self.string_to_float(row[3])))
|
|
|
|
con.commit()
|
|
cursor.close()
|
|
con.close()
|
|
print("Der Import der Näherungskoordinaten wurde erfolgreich abgeschlossen") |