Visual Basic Text Datei bearbeiten?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Oder in .NET (so einfach wie möglich ohne Regex)

Dim strFilePath As String = "C:\Test.txt"
Dim lines() As String = IO.File.ReadAllLines(strFilePath)
For i As Integer = 0 To lines.Length - 1
    If lines(i).Contains("test") Then
        lines(i) = "hallo" 
    End If
Next
IO.File.WriteAllLines(strFilePath, lines) 
Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler
verreisterNutzer  22.12.2019, 16:34

Erklärung?!

0
FinnB132  22.12.2019, 17:18
@verreisterNutzer

Alle Zeilen der Text Datei werden in ein Array aus Strings gelesen.

Also 1 Array Index = 1 Zeile, 0 = Zeile 1, 1=Zeile 2, 2= Zeile 3...

Das Array wird mithilfe einer for schleife durchlaufen und mithilfe einer If abfrage wird der Wert jedes String Element im Array das „test“ enthält durch „hallo“ ersetzt.

Danach wird die Textdatei mit deinem veränderten Array überschrieben.

Statt der Schleife könntest du in deinem Fall auch einfach direkt am entsprechenden Index im Array den Wert setzen.

LG

0

Also wenn du mit Visual Basic, Visual Basic Script meinst dann geht das so:

Text Datei vor Ausführung:

zeile 1
zeile 2
test
zeile 4

Text Datei nach der Ausführung:

zeile 1
zeile 2
hallo
zeile 4

Script:

Call EditFile("test", "hallo", "C:\test.txt") 'Dateipfad zur TXT datei 


Function EditFile(strOldText, strNewText, strFileName)
	Const ForReading = 1
	Const ForWriting = 2


	Dim strText, objFile, objFSO


	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set objFile = objFSO.OpenTextFile(strFileName, ForReading)


	strText = objFile.ReadAll
	objFile.Close
	strNewText = Replace(strText, strOldText, strNewText)


	Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
	objFile.WriteLine strNewText
	objFile.Close
End Function

LG

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler