dumdidum1
Goto Top

VBS Text vor jeder Zeile einfügen

Hallo Forumsmitglieder,

als Anfänger in Sachen VBS versuche ich ein vorhandenes VBS so zu ergänzen,
dass vor jeder Zeile innerhalb der txt.Datei 89670000; vorangestellt wird.
Die Datei umfasst ca. 15.000 Zeilen.

Über Rückmeldungen würde ich mich freuen

Viele Grüße

Content-ID: 5512061698

Url: https://administrator.de/forum/vbs-text-vor-jeder-zeile-einfuegen-5512061698.html

Ausgedruckt am: 24.12.2024 um 19:12 Uhr

7907292512
Lösung 7907292512 25.08.2023 aktualisiert um 12:56:59 Uhr
Goto Top
Moin.
dim fso,input,output
Set fso = CreateObject("Scripting.FileSystemObject")  
Set input = fso.OpenTextFile("D:\test.txt",1)  
Set output = fso.OpenTextFile("D:\test_neu.txt",2,True)  
While Not input.AtEndOfStream
    output.WriteLine "89670000;" & input.ReadLine  
Wend
output.close
input.close
set fso = Nothing
set input = Nothing
set output = Nothing

Ich würde sowas ja vieeeeeel schneller gleich mit sed erledigen
sed -e 's/^/89670000;/' test.txt >test_neu.txt  
Oder mit der Powershell
(Get-Content "D:\test.txt" ) -replace '^','89670000;' | Set-Content "D:\test_neu.txt"  
Gruß siddius
Dumdidum1
Dumdidum1 25.08.2023 um 13:00:32 Uhr
Goto Top
Bin total begeistert !!!
Danke für die schnelle Antwort, funktioniert super.

Grüße
beidermachtvongreyscull
beidermachtvongreyscull 25.08.2023 um 16:00:06 Uhr
Goto Top
Zitat von @7907292512:

Moin.
dim fso,input,output
Set fso = CreateObject("Scripting.FileSystemObject")  
Set input = fso.OpenTextFile("D:\test.txt",1)  
Set output = fso.OpenTextFile("D:\test_neu.txt",2,True)  
While Not input.AtEndOfStream
    output.WriteLine "89670000;" & input.ReadLine  
Wend
output.close
input.close
set fso = Nothing
set input = Nothing
set output = Nothing

Ich würde sowas ja vieeeeeel schneller gleich mit sed erledigen
sed -e 's/^/89670000;/' test.txt >test_neu.txt  
Oder mit der Powershell
(Get-Content "D:\test.txt" ) -replace '^','89670000;' | Set-Content "D:\test_neu.txt"  
Gruß siddius

Da lass ich auch mal ein Herzchen da.
Du hast Recht! Mit "sed" gehts viel schneller. Auch so mit Powershell.

Ich gehöre auch noch zu denen, die viel über VBScript erschlagen. Das liegt bei mir einfach daran, dass ich bei Powershell den Eindruck habe, mit Programmier-Stenografie zu arbeiten. Fällt mir persönlich echt schwer.

Ich komprimiere den Sourcecode nicht gerne. So bleibt er für mich übersichtlicher.

Gruß, schönes WE und Danke für die Lösung.
bdmvg
7907292512
7907292512 25.08.2023 um 16:47:28 Uhr
Goto Top
Ich komprimiere den Sourcecode nicht gerne.
Powershell ist da ja noch eine ziemlich "gesprächige" Variante durch die CMDLets face-smile.
Dumdidum1
Dumdidum1 28.08.2023 um 07:29:33 Uhr
Goto Top
Gute Morgen Siddius,

könntest du das Script noch so erweitern, dass das letzte Semikolon in jeder Zeile der Datei gelöscht wird?

Viele Grüße
7907292512
7907292512 28.08.2023 um 07:58:59 Uhr
Goto Top
Zitat von @Dumdidum1:

Gute Morgen Siddius,

könntest du das Script noch so erweitern, dass das letzte Semikolon in jeder Zeile der Datei gelöscht wird?

Viele Grüße

Das kannst du auch selbst
https://www.w3schools.com/asp/func_left.asp
Dumdidum1
Dumdidum1 28.08.2023 um 15:46:32 Uhr
Goto Top
ich befürchte nicht ...
7907292512
Lösung 7907292512 28.08.2023 aktualisiert um 16:09:03 Uhr
Goto Top
Zitat von @Dumdidum1:

ich befürchte nicht ...

Wow, das muss man auch erst mal hinbekommen... 🤔.
' ...  
While Not input.AtEndOfStream
    line = input.ReadLine
    output.WriteLine "89670000;" & Left(line,Len(line)-1)  
Wend
' ...  
Dumdidum1
Dumdidum1 28.08.2023 um 16:10:31 Uhr
Goto Top
soweit war ich auch schon schon fast

mir fehlte aber noch line = input.ReadLine
und bekam eine Fehlermeldung
Bin halt wie beschrieben "Anfänger"

Viele Grüße und Danke