mhilfiker
Goto Top

In textfile Position ändern

Hi Zusammen,

Also müsste in textdateien Positionen ändern per einem Script.

habe ein file das text enthält, und da müsste ich in jeder zeile, Position 41+42 löschen. Wie danach nach position 50 2 x ne 0 einfügen.
Hab bis jetzt noch nix richtiges gefunden, vieleicht en VB Script?

Für Hilfe wäre ich Dankbar.

Gruss
Markus

Content-Key: 130685

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

Printed on: April 26, 2024 at 00:04 o'clock

Member: bastla
bastla Dec 01, 2009 at 14:08:16 (UTC)
Goto Top
Hallo mhilfiker und willkommen im Forum!

Als VBScript (ungetestet) etwa so:
Datei = "D:\Test.txt"  
Set fso = CreateObject("Scripting.FileSystemObject")  
T = Split(fso.OpenTextFile(Datei).ReadAll, vbCrLf)
For i = 0 To UBound(T)
    T(i) = Left(T(i), 40) & Mid(T(i), 43, 8) & "00" & Mid(T(i), 51)  
Next
fso.CreateTextFile(Datei, True).Write Join(T, vbCrLf)
Die Ersetzung erfolgt hier "in der Datei", es wird also keine Sicherungskopie erstellt.

Grüße
bastla
Member: mhilfiker
mhilfiker Dec 01, 2009 at 16:10:43 (UTC)
Goto Top
Hi Bastla,

Vielen Dank, das script funktioniert soweit, jetzt ist allerdings das problem aufgetaucht, das das file auf der anfangszeile nur wenige zeile hat, um das format zu erkennen und auf der letzten auch nochmals ne kürzere... Natürlich machts mir jetzt die 2 00 jetzt auch auf die 1 und letzte zeile obwohl sie kürzer sind und nicht verändert werden müssen. Gibets dafür auch ne Lösung?

Kannst du mir sagen, welcher teil des codes für das löschen zuständig ist?

Besten Dank

Grüsse
Markus
Member: bastla
bastla Dec 01, 2009 at 16:45:49 (UTC)
Goto Top
Hallo mhilfiker!
Natürlich machts mir jetzt die 2 00 jetzt auch auf die 1 und letzte zeile obwohl sie kürzer sind und nicht verändert werden müssen. Gibets dafür auch ne Lösung?
Ändere die Zeile 5 auf
If Len(T(i)) > 50 Then T(i) = Left(T(i), 40) & Mid(T(i), 43, 8) & "00" & Mid(T(i), 51)
Kannst du mir sagen, welcher teil des codes für das löschen zuständig ist?
Eigentlich wird nicht "gelöscht", sondern die Zeile aus den folgenden Bestandteilen neu zusammengebaut: Die ersten 40 Zeichen, die 8 Zeichen ab 43, die beiden Nullen und den Rest ab Zeichen 51 bis zum Ende ...

Grüße
bastla