--- /dev/null
+'''
+Created on 10.01.2024
+
+@author: sparky2021
+'''
+
+import sys
+
+if __name__ == '__main__':
+ pass
+
+numArgs = len(sys.argv)
+if (numArgs != 4):
+ raise RuntimeError("usage: sv-merger EXPORT DELTA FIELD")
+
+
+dh_export = open(sys.argv[1])
+dh_delta = open(sys.argv[2])
+dh_import = open("import.csv", "w")
+
+# Lese die Kopfzeile aus EXPORT
+line = dh_export.readline().rstrip()
+print(line, file=dh_import)
+export_header = line.split(";")
+
+sv_pn_spalte = -1
+sv_such_spalte = -1
+
+i = 0
+for kopf in export_header:
+ kopf = kopf[1:-1]
+ if kopf == 'Freifeldwert_1':
+ sv_pn_spalte = i
+ if kopf == sys.argv[3]:
+ sv_such_spalte = i
+ i += 1
+
+if sv_pn_spalte == -1:
+ raise RuntimeError("S-Verein-Export enthält keine Partnernummer")
+if sv_such_spalte == -1:
+ raise RuntimeError("S-Verein-Export enthält nicht das gewünschte Datenfeld "+sys.argv[3])
+
+line = dh_delta.readline().rstrip()
+delta_header = line.split(";")
+
+delta_pn_sp = -1
+delta_such_sp = -1
+
+i = 0
+for kopf in delta_header:
+ if kopf == "Partnernummer":
+ delta_pn_sp = i
+ if kopf == sys.argv[3]:
+ delta_such_sp = i
+ i += 1
+
+if delta_pn_sp == -1:
+ raise RuntimeError("Delta-Datei enthält keine Partnernummer")
+if delta_such_sp == -1:
+ raise RuntimeError("Delta-Datei enthält nicht das gewünschte Datenfeld")
+
+delta = {}
+for line in dh_delta:
+ if len(line.rstrip()):
+ # not a empty line
+ data = line.split(";")
+ delta[data[delta_pn_sp]] = data[delta_such_sp]
+
+for line in dh_export:
+ data = line.rstrip().split(";")
+ pn = data[sv_pn_spalte][1:-1]
+ if pn in delta:
+ if len(delta[pn]):
+ data[sv_such_spalte] = delta[pn]
+ print(";".join(data), file=dh_import)
+
+dh_export.close()
+dh_delta.close()
+dh_import.close()
+
+'''
+Argumente:
+
+EXPORT: Export-Datei aus S-Verein
+
+DELTA: csv-Daten, die eingearbeitet werden sollen
+
+FIELD: Feld, das eingearbeitet werden soll, wenn
+ - Das Quellfeld nicht leer ist
+ - Sich der Wert von der EXPORT-Datei unterscheidet
+
+Die Synchronisation der Daten erfolgt anhand der Partnernummer.
+
+Das Ergebnis wird stets in die Datei import.csv geschrieben.
+'''