Visual Basic Text Datei bearbeiten?
Hallo,
Ich habe einen Text Datei auf meinem Computer. Ich mchte nun, dass in Zeile 3 statt "test" dann "hallo" steht. Also der User soll es NICHT mit Hand eingeben, sondern das Programm soll es im Hintergrund umschreiben. Aber NUR die Zeile 3!!
Ich hoffe Ihr könnt mir helfen.
Hier hätte ich auch noch eine Frage: https://www.gutefrage.net/frage/ahk-samp-api---addchattext
MfG LuGaming
2 Antworten
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)
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
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
Erklärung?!