ms2lork
Goto Top

Datum in Datei automatisch aktualisieren

hallo

habe 2 Datein (xml und lst Format) diese haben beide an einer bestimmten Position eine Datumsangabe. Ich möchte diese nun aktualiesieren. Der restliche Dateiinhalt soll nich verändert werden.

bei der xml Datei Zeile 2 Position 15 bis 22
sowie in Zeile 11 Position 15 bis 22
bei der lst Datei zeile 1 Position 13 bis 20
jeweils ohne Trennungszeichen im Format TTMMJJJJ

wäre sehr dankbar für eine Lösung

Content-Key: 113749

Url: https://administrator.de/contentid/113749

Printed on: April 19, 2024 at 21:04 o'clock

Member: bastla
bastla Apr 13, 2009 at 16:20:07 (UTC)
Goto Top
Hallo ms2lork und willkommen im Forum!

Das ließe sich am einfachsten mit einem VBScript erledigen:
Datei1="D:\Datei1.xml"  
Datei2="D:\Datei2.lst"  
D=Replace(Date,".","")  
'D="TTMMJJJJ"  
L=Len(D)
Set fso = CreateObject("Scripting.FileSystemObject")  

T = Split(fso.OpenTextFile(Datei1).ReadAll,vbCrLF)
Z= 2: P=15: T(Z-1)=Left(T(Z-1),P-1)&D&Mid(T(Z-1),P+L)
Z=11: P=15: T(Z-1)=Left(T(Z-1),P-1)&D&Mid(T(Z-1),P+L)
fso.CreateTextFile(Datei1).Write Join(T,vbCrLF)

T=Split(fso.OpenTextFile(Datei2).ReadAll,vbCrLF)
Z= 1: P=13: T(Z-1)=Left(T(Z-1),P-1)&D&Mid(T(Z-1),P+L)
fso.CreateTextFile(Datei2).Write Join(T,vbCrLF)
Falls Du nicht das aktuelle Datum verwenden willst, kannst Du in Zeile 4 das Apostroph entfernen und zwischen die Anführungszeichen das gewünschte Datum schreiben.

In den Zeilen 9 und 10 bzw 14 sind die Zeile(n) und Startposition(en) innerhalb der Zeile für die jeweilige Datei anzugeben.

Es wird vorausgesetzt (und daher nicht geprüft), dass die in den Zeilen 1 und 2 angegebenen Dateien existieren und dass die zu verändernden Zeilen auch tatsächlich ein Datum an den vorgegebenen Positionen (für Position 1 wäre übrigens eine Anpassung des Scripts erforderlich) enthalten.

Die Ersetzung erfolgt "in der Datei" - daher bitte zum Testen nur mit Kopien arbeiten.

Grüße
bastla

P.S.: Bei Bedarf lassen sich die Dateipfade bzw der Datumswert natürlich auch als Parameter beim Aufruf des Scripts übergeben.
Member: ms2lork
ms2lork Apr 14, 2009 at 15:55:07 (UTC)
Goto Top
hi,
danke für die schnelle Antwort funktioniert super. Nur hab ich irgendwie die Zeit vergessen. In der xml Datei steht nach dem Datum mit Leerzeichen getrennt (TTMMJJJJ HHMM) noch die Uhrzeit. So dass diese teilweise in der Zukunft lag und er mir dann in der folge immer ein Fehler gemeldet hat. Kann man die Uhrzeit einfach gleich mit ändern?

vielen Dank im vorraus
lork
Member: bastla
bastla Apr 14, 2009 at 16:15:54 (UTC)
Goto Top
Hallo ms2lork!

Es sollte genügen, die Zeilen 3 und (der Ordnung halber face-wink) 4 zu ändern:
D=Replace(Date,".","") & " " & Replace(Left(Time,5),":","")
'D="TTMMJJJJ HHMM"
Grüße
bastla
Member: ms2lork
ms2lork Apr 15, 2009 at 12:32:30 (UTC)
Goto Top
Danke hab jetzt noch die beiden Datein seperat bearbeiten lassen, weil bei der .lst-Datei kein Zeit Angabe dran ist, und funktioniert alles.

bye lork