]> wagnertech.de Git - SVBaL.git/blobdiff - python/sv-merger/sv-merger.py
Test hinzugefügt
[SVBaL.git] / python / sv-merger / sv-merger.py
index 5e8fce598061477a66d7b742962ad23c88147e93..aa48d57917e3fb58d261ec83441538fa1249eb55 100755 (executable)
@@ -10,6 +10,11 @@ import sys
 if __name__ == '__main__':
     pass
 
+def rd_opt_qval(s):
+     if s[0] == '"':
+         s = s[1:-1]
+     return s
+
 numArgs = len(sys.argv)
 if (numArgs != 4):
     raise RuntimeError("usage: sv-merger EXPORT DELTA FIELD") 
@@ -29,7 +34,8 @@ sv_such_spalte = -1
 
 i = 0
 for kopf in export_header:
-    kopf = kopf[1:-1]
+    if kopf[0] == '"':
+        kopf = kopf[1:-1]
     if kopf == 'Freifeldwert_1':
         sv_pn_spalte = i
     if kopf == sys.argv[3]:
@@ -42,14 +48,15 @@ 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_header = line.split(",")
 
 delta_pn_sp = -1
 delta_such_sp = -1
 
 i = 0
 for kopf in delta_header:
-    if kopf == "Partnernummer":
+    print (kopf)
+    if rd_opt_qval(kopf) == "Partnernummer":
         delta_pn_sp = i
     if kopf == sys.argv[3]:
         delta_such_sp = i
@@ -65,18 +72,27 @@ for line in dh_delta:
     if len(line.rstrip()):
         # not a empty line
         data = line.split(";")
-        delta[int(data[delta_pn_sp])] = data[delta_such_sp]
+        if len(data[delta_pn_sp]) == 0:
+            print("Diese Zeile hat keine Migliedsnummer: ", line)
+        else:
+            delta[int(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 len(pn):
-       pn = int(pn)
-       if pn in delta:
-           if len(delta[pn]):
-               if data[sv_such_spalte] != delta[pn]:
-                  data[sv_such_spalte] = delta[pn]
-                  print(";".join(data), file=dh_import)
+    pn = data[sv_pn_spalte]
+    if len(pn) == 0:
+        print("Diese Zeile (export) hat keine Migliedsnummer: ", line)
+    else:
+        if pn[0] == '"':
+            pn = pn[1:-1]
+        pn = int(pn)
+        if pn in delta:
+            if len(delta[pn]):
+                if data[sv_such_spalte] != delta[pn]:
+                    data[sv_such_spalte] = delta[pn]
+                    print(";".join(data), file=dh_import)
+        else:
+            print(f"{pn} fehlt in delta-Datei")
 
 dh_export.close()
 dh_delta.close()