10 if __name__ == '__main__':
13 numArgs = len(sys.argv)
15 raise RuntimeError("usage: sv-merger EXPORT DELTA FIELD")
18 dh_export = open(sys.argv[1])
19 dh_delta = open(sys.argv[2])
20 dh_import = open("import.csv", "w")
22 # Lese die Kopfzeile aus EXPORT
23 line = dh_export.readline().rstrip()
24 print(line, file=dh_import)
25 export_header = line.split(";")
31 for kopf in export_header:
34 if kopf == 'Freifeldwert_1':
36 if kopf == sys.argv[3]:
40 if sv_pn_spalte == -1:
41 raise RuntimeError("S-Verein-Export enthält keine Partnernummer")
42 if sv_such_spalte == -1:
43 raise RuntimeError("S-Verein-Export enthält nicht das gewünschte Datenfeld "+sys.argv[3])
45 line = dh_delta.readline().rstrip()
46 delta_header = line.split(";")
52 for kopf in delta_header:
53 if kopf == "Partnernummer":
55 if kopf == sys.argv[3]:
60 raise RuntimeError("Delta-Datei enthält keine Partnernummer")
61 if delta_such_sp == -1:
62 raise RuntimeError("Delta-Datei enthält nicht das gewünschte Datenfeld")
66 if len(line.rstrip()):
68 data = line.split(";")
69 if len(data[delta_pn_sp]) == 0:
70 print("Diese Zeile hat keine Migliedsnummer: ", line)
72 delta[int(data[delta_pn_sp])] = data[delta_such_sp]
74 for line in dh_export:
75 data = line.rstrip().split(";")
76 pn = data[sv_pn_spalte]
78 print("Diese Zeile (export) hat keine Migliedsnummer: ", line)
85 if data[sv_such_spalte] != delta[pn]:
86 data[sv_such_spalte] = delta[pn]
87 print(";".join(data), file=dh_import)
89 print(f"{pn} fehlt in delta-Datei")
98 EXPORT: Export-Datei aus S-Verein
100 DELTA: csv-Daten, die eingearbeitet werden sollen
102 FIELD: Feld, das eingearbeitet werden soll, wenn
103 - Das Quellfeld nicht leer ist
104 - Sich der Wert von der EXPORT-Datei unterscheidet
106 Die Synchronisation der Daten erfolgt anhand der Partnernummer.
108 Das Ergebnis wird stets in die Datei import.csv geschrieben.