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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

SlainteMhath
SlainteMhath 17.07.2013 aktualisiert um 14:12:15 Uhr
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 17.07.2013 aktualisiert um 23:00:03 Uhr
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 18.07.2013 um 08:42:21 Uhr
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