alme123
Goto Top

Ersetzen per Vbscript

Hallo zusammen,


ich habe eine Datei (Datei.txt) mit folgendem Inhalt:

1230ABC

Diese Datei soll wie folgt ersetzt werden:

1 = 33
2 = 67
3 = 12

Dafür habe ich auch schon einen Code:

Set fso=CreateObject("Scripting.FileSystemObject"): T=fso.OpenTextFile("Alt.txt").ReadAll: fso.CreateTextFile("Datei.txt",False).Write Replace(T,"1","33")  
Set fso=CreateObject("Scripting.FileSystemObject"): T=fso.OpenTextFile("Alt.txt").ReadAll: fso.CreateTextFile("Datei.txt",False).Write Replace(T,"2","67")  
Set fso=CreateObject("Scripting.FileSystemObject"): T=fso.OpenTextFile("Alt.txt").ReadAll: fso.CreateTextFile("Datei.txt",False).Write Replace(T,"3","12")  

Jedoch soll der ersetzte Wert (33) nicht noch einmal ersetzt werden!
Wie bekomme ich dies hin?

Vielen Dank im Vorraus,

Alme123

Content-ID: 211711

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

Printed on: October 9, 2024 at 17:10 o'clock

SlainteMhath
SlainteMhath Jul 17, 2013 updated at 12:12:15 (UTC)
Goto Top
Moin,

Jedoch soll der ersetzte Wert (33) nicht noch einmal ersetzt werden!
Wie bekomme ich dies hin?
Wenn sich überlappungen ergeben so wie bei dir geht das nur manuell, d.h. jedes Zeichen in jeder Zeile der Datei durchlaufen und dann per select abprüfen... etwa so:
Zeichen=mid(x,y,EingabeZeile)
select case Zeichen
  case is = "1"  
    Zeichen="33"  
    break
  case is = "2"  
    Zeichen="67"  
    break
  case is = "3"  
    Zeichen="12"  
    break
end select
AusgabeZeile=AusgabeZeile & Zeichen
Und dann eben die Datei neu schreiben

lg,
Slainte

/EDITH: Typos
bastla
bastla Jul 17, 2013 updated at 21:00:03 (UTC)
Goto Top
@ Slainte
Sähe ich auch so face-smile - syntaktisch hat das aber noch Potenzial face-wink :
Set fso = CreateObject("Scripting.FileSystemObject")  
T = fso.OpenTextFile("Alt.txt").ReadAll  
For i = 1 To Len(T)
    Zeichen =  Mid(T, i, 1)
    Select Case Zeichen
    Case "1"  
        AusgabeZeile = AusgabeZeile & "33"  
    Case "2"  
        AusgabeZeile = AusgabeZeile & "67"  
    Case "3"  
        AusgabeZeile = AusgabeZeile & "12"  
    Case Else
        AusgabeZeile = AusgabeZeile & Zeichen
    End Select
Next
fso.CreateTextFile("Datei.txt").Write AusgabeZeile  
Wenn es mehr als nur die 3 angeführten Ersetzungen geben sollte, würde sich ein "Dictionary" anbieten ...

Grüße
bastla
SlainteMhath
SlainteMhath Jul 18, 2013 at 06:42:21 (UTC)
Goto Top
Zitat von @bastla:
[...] syntaktisch hat das aber noch Potenzial face-wink :
Zugegeben, VBScript ist nicht so das Ding in dem ich jeden Tag was bastle face-smile