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-Key: 5512061698

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

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

Mitglied: 7907292512
Solution 7907292512 Aug 25, 2023 updated at 10:56:59 (UTC)
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
Member: Dumdidum1
Dumdidum1 Aug 25, 2023 at 11:00:32 (UTC)
Goto Top
Bin total begeistert !!!
Danke für die schnelle Antwort, funktioniert super.

Grüße
Member: beidermachtvongreyscull
beidermachtvongreyscull Aug 25, 2023 at 14:00:06 (UTC)
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
Mitglied: 7907292512
7907292512 Aug 25, 2023 at 14:47:28 (UTC)
Goto Top
Ich komprimiere den Sourcecode nicht gerne.
Powershell ist da ja noch eine ziemlich "gesprächige" Variante durch die CMDLets face-smile.
Member: Dumdidum1
Dumdidum1 Aug 28, 2023 at 05:29:33 (UTC)
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
Mitglied: 7907292512
7907292512 Aug 28, 2023 at 05:58:59 (UTC)
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
Member: Dumdidum1
Dumdidum1 Aug 28, 2023 at 13:46:32 (UTC)
Goto Top
ich befürchte nicht ...
Mitglied: 7907292512
Solution 7907292512 Aug 28, 2023 updated at 14:09:03 (UTC)
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
' ...  
Member: Dumdidum1
Dumdidum1 Aug 28, 2023 at 14:10:31 (UTC)
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