Eine Spalte aus einer anderen CSV übernehmen
Hallo
ich bin mit meinen batchdateien soweit durch aber ein kleines Problem habe ich noch.
Eine CSV mit Adresse und geburtsdatum wird versedet und kommt verarbeitet zurück. Leider ist dann das Datum in der empfangenen Datei etwas durcheinander, es fehlen die Jahreszahlen. in der von mir erstellten Datei ist aber das Datum richtig.
Nun suche ich eine Möglichkeit bei der empfangenen Datei das datum aus der 1. Datei zu übernehmen.
Das Datum steht bei beiden in Spalte 8.
nach meinen Versuchen scheint das mit einer Batchdatei unmöglich zu sein. kann man sowas über VBS lösen?
ich bin mit meinen batchdateien soweit durch aber ein kleines Problem habe ich noch.
Eine CSV mit Adresse und geburtsdatum wird versedet und kommt verarbeitet zurück. Leider ist dann das Datum in der empfangenen Datei etwas durcheinander, es fehlen die Jahreszahlen. in der von mir erstellten Datei ist aber das Datum richtig.
Nun suche ich eine Möglichkeit bei der empfangenen Datei das datum aus der 1. Datei zu übernehmen.
Das Datum steht bei beiden in Spalte 8.
nach meinen Versuchen scheint das mit einer Batchdatei unmöglich zu sein. kann man sowas über VBS lösen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181554
Url: https://administrator.de/contentid/181554
Ausgedruckt am: 25.11.2024 um 23:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo chrislm,
die erste Frage wäre ob du diese Arbeit regelmäßig hast oder ob das im Moment eine einmalige Sache ist.
Bei Regelmäßigkeit wäre ich für evtl. VBS bei Einmaligkeit für den simplen SVERWEIS.
Du liest beide CSV in eine extra Karteikarte ein und verknüpfst die Datumsspalte über SVERWEIS.
Solle auch bei Tausenden von Datensätzen eine Arbeit von ca. 10min sein (Maximal!).
grüße vom it-frosch
die erste Frage wäre ob du diese Arbeit regelmäßig hast oder ob das im Moment eine einmalige Sache ist.
Bei Regelmäßigkeit wäre ich für evtl. VBS bei Einmaligkeit für den simplen SVERWEIS.
Du liest beide CSV in eine extra Karteikarte ein und verknüpfst die Datumsspalte über SVERWEIS.
Solle auch bei Tausenden von Datensätzen eine Arbeit von ca. 10min sein (Maximal!).
grüße vom it-frosch
Hallo chrislm!
Wenn doch Batch, sollten die beiden folgenden Threads helfen:
Zwei Texte Zeilenweise zusammenfügen per batch
Mehrere CSV Dateien zusammenfügen, nicht hintereinander, sondern parallel
Grüße
bastla
Wenn doch Batch, sollten die beiden folgenden Threads helfen:
Zwei Texte Zeilenweise zusammenfügen per batch
Mehrere CSV Dateien zusammenfügen, nicht hintereinander, sondern parallel
Grüße
bastla
Hallo,
Gruß,
Peter
Zitat von @chrislm:
Eine CSV mit ... wird versedet und kommt verarbeitet zurück. Leider ist dann das Datum in der empfangenen Datei etwas durcheinander, es fehlen die Jahreszahlen.
Warum wird denn etwas an den daten einer Spalte verändert wenn du es nicht willst? Warum kann der verarbeiter nicht die datumswerte belassen? Was genau passiert denn da? Wurde denn die Verarbeitung und deren Folgen (geänderte Feldinhalte) nicht vorher besprochen / festgelegt? Wenn das Datum beim Verarbeiter nur gelesen werden sollte, warum ist es anschließend verändert? Warum sollte ein Geburtsdatum hier geändert (wie oft ändert sich das denn) werden? Das Datum wird ja wohl vom Verarbeiter wenn überhaupt dann nur ausgelesen, oder? Da solltest du ansetzen um erst gar keine unstimmigkeiten aufkommen zu lassen.Eine CSV mit ... wird versedet und kommt verarbeitet zurück. Leider ist dann das Datum in der empfangenen Datei etwas durcheinander, es fehlen die Jahreszahlen.
Gruß,
Peter
Hallo,
Gruß,
Peter
Zitat von @chrislm:
also ich bekomme das Datum so zurück : 01.01.0070. es solle je 1970 heißen... überall bei den Jahreszahlen felht mir die 19.
Ja, und dafür sind aber Zwei nullen zuviel drin. Das Jahr 0070 hat es schon gegeben wenn wir das die Jahreszahl grundsätzlich 4 stellig schreiben. Wenn du als Datumswert ein 01.01.1970 hinschickst und ein 01.01.0070 zurückbekommst, dann ...also ich bekomme das Datum so zurück : 01.01.0070. es solle je 1970 heißen... überall bei den Jahreszahlen felht mir die 19.
An den Daten kann ich nicht viel tun, das ist ein externes Unternehmen was die Daten überprüft.
Zeig mir mal das Unternehmen wo ich ungefragt CSV Dateien hinschicken kann, diese werden be/verarbeitet und ich bekomme diese geänderten Daten dann als CSV wieder zurück. Ihr werdet schon irgendeinen Vertrag oder sonstwas haben was dieses regelt. Und wenn dieses Externe Unternehmen seine Arbeit / Dienstleistung nicht korrekt erfüllt dann .... Nach deiner Aussage ist also dieses Externe Unternehmen Schuld an dein Problem und du hast es wohl auch so nicht mit denen abgesprochen / vereinbart.Gruß,
Peter
überall bei den Jahreszahlen felht mir die 19
Wenn es als sicher gilt, dass alle im 20ten Jahundert geboren worden und immer die 00 durch die 19 ersetzt werden soll, dann ist es einfach mit VBS und REPLACE. Man muss nur aufpassen, dass andere Daten - wie Telefonnummern oder Adressen - nicht auch 00 enthalten!Gruss
Tsuki
Hallo chrisIm,
du gibst aber schnell auf
Nein, was wir nur versuchen zu vermitteln ist, dass das Problem bei jemanden liegt, der dir die Daten so verändert, dass du die Arbeit zum Schluss wieder damit hast. Du zerbrichst dir nun den Kopf, wie Du das wieder gerade bügeln kannst.
Von daher haben wir versucht, dir einige einfache und sehr schnelle Möglichkeiten aufzuzeigen.
Man kann deine CSV-Datei auch mit dem Wordpad öffnen, dann Tastenkombination STRG+H eingeben und dann 00 ersetzen durch 19 meinetwegen. Aber eventuell gibt es jemanden, der in dieser Liste nach 2000 geboren worden ist. Dann muss das schon wieder geändert werden.
Also, ich will's gar nicht zu lang machen und dir mal ein Beispiel-Code in VBS zeigen.
Ich habe deine Infos genommen bezüglich Aufbau der CSV-Dateien (vorher/nachher).
Ich gehe davon aus, dass das Geburtstagsdatum immer in der "letzten" Spalte steht!
Aber Vorsicht!
Der Code funktioiert nur, wenn...... Genau! Da gäbe es noch zu viele Wenn(s) und Aber(s)
Ansonsten könnte es unter Umständen sein, dass jemand an einem anderen Tag Geburtstag hat ganz plötzlich und und und..
Schau es dir mal an und dann überlege dir wirklich, ob es Sinn macht, da selber Geist reinzustecken in dein Vorhaben oder ob es doch nicht besser und einfacher ist, demjenigen auf die Finger zu (sc)hauen, der dir das verbockt
Gruss
Tsuki
du gibst aber schnell auf
Nein, was wir nur versuchen zu vermitteln ist, dass das Problem bei jemanden liegt, der dir die Daten so verändert, dass du die Arbeit zum Schluss wieder damit hast. Du zerbrichst dir nun den Kopf, wie Du das wieder gerade bügeln kannst.
Von daher haben wir versucht, dir einige einfache und sehr schnelle Möglichkeiten aufzuzeigen.
Man kann deine CSV-Datei auch mit dem Wordpad öffnen, dann Tastenkombination STRG+H eingeben und dann 00 ersetzen durch 19 meinetwegen. Aber eventuell gibt es jemanden, der in dieser Liste nach 2000 geboren worden ist. Dann muss das schon wieder geändert werden.
Also, ich will's gar nicht zu lang machen und dir mal ein Beispiel-Code in VBS zeigen.
Ich habe deine Infos genommen bezüglich Aufbau der CSV-Dateien (vorher/nachher).
Ich gehe davon aus, dass das Geburtstagsdatum immer in der "letzten" Spalte steht!
Dim FSO
Dim DatenVorher , DatenNachher , DatenZumSchluss
Const CSV_vorher_Datei ="CSV_Before.csv"
Const CSV_nachher_Datei ="CSV_After.csv"
Const CSV_zumSchluss_Datei ="CSV_Fertig.csv"
SET FSO = CreateObject("Scripting.FileSystemObject")
DatenVorher = Split(FSO.OpenTextFile(CSV_vorher_Datei).ReadAll,vbcrlf)
DatenNachher = Split(FSO.OpenTextFile(CSV_nachher_Datei).ReadAll,vbcrlf)
For i = 1 to (Ubound(DatenVorher) - 1)
tempV = Split(DatenVorher(i),";")
tempN = Split(DatenNachher(i),";")
tempN(Ubound(tempN)) = Replace(tempN(Ubound(tempN)),tempN(Ubound(tempN)),tempV(Ubound(tempV)))
DatenZumSchluss = DatenZumSchluss & Join(tempN,";") & vbcrlf
Next
FSO.CreateTextFile(CSV_zumSchluss_Datei).Write DatenZumSchluss
Set FSO = Nothing
Der Code funktioiert nur, wenn...... Genau! Da gäbe es noch zu viele Wenn(s) und Aber(s)
Ansonsten könnte es unter Umständen sein, dass jemand an einem anderen Tag Geburtstag hat ganz plötzlich und und und..
Schau es dir mal an und dann überlege dir wirklich, ob es Sinn macht, da selber Geist reinzustecken in dein Vorhaben oder ob es doch nicht besser und einfacher ist, demjenigen auf die Finger zu (sc)hauen, der dir das verbockt
Gruss
Tsuki