Hallo Leute,
ich versuche gerade aus einer Datei Text zu lesen, eine bestimmte Zeile zu finden, diese zu verändern und wieder auf die gleiche Position zu schreiben.
Sobald ich auf die Datai schreiben will bekomme ich folgende Fehlermeldung.
Ein Ausnahmefehler des Typs "System.IO.IOException" ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Der Prozess kann nicht auf die Datei "C:\Users\Textdatei.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.
Das kuriose ist dabei daß nach der oberen aktion ich eine andere Textdatei lese und ändere (anderer pfad). Hier funktioniert alles.
Gibt es eine Möglichkeit herauszufinden von welchem Prozess die Datei verwendet wird?
Mein Prog ist einwenig umfangreicher. Der Teil aber der die Dateien bearbeiten soll sieht so aus:
' Anpassen der Parameter
Pfad = Datei1_pfad
Dim Datei1_lines() As String = System.IO.File.ReadAllLines(Pfad)
Dim Zähler As Integer
For Zähler = 0 To src_lines.Length - 1
If Datei1_lines(Zähler).ToUpper.Contains("ABC") And Not Datei1_lines(Zähler).ToUpper.Contains("CBA") Then
Datei1_lines(Zähler) = ("")
Datei1_lines(Zähler) = ("ABC ist gleich wie CBA")
End If
If Datei1_lines(Zähler).ToUpper.Contains("EFG") Then
Datei1_lines(Zähler) = ("")
Datei1_lines(Zähler) = ("HIJKLMNOP")
End If
Next
'FileClose()
System.IO.File.WriteAllLines(Pfad, Datei1_lines) An dieser Stelle tritt der Fehler auf
Pfad = Datei2_pfad
Dim a1_abgearbeitet, a2_abgearbeitet As Boolean
a2_abgearbeitet = False
Dim datei2_lines() As String = System.IO.File.ReadAllLines(Pfad)
For Zähler = 0 To datei2_lines.Length - 1
If datei2_lines(Zähler).ToUpper.Contains("irgendwas") Then
datei2_lines(Zähler) = ("") ' Zeile löschen
If a2_abgearbeitet = False Then
datei2_lines(Zähler) = ("")
'dat_lines(Zähler).Remove(dat_lines(Zähler))
datei2_lines(Zähler) = ("irgendetwas anderes"}
a2_abgearbeitet = True
Else
'dat_lines(Zähler).Remove(dat_lines(Zähler))
datei2_lines(Zähler) = ("")
End If
End If
Next
System.IO.File.WriteAllLines(Pfad, datei2_lines)
End Sub
ich versuche gerade aus einer Datei Text zu lesen, eine bestimmte Zeile zu finden, diese zu verändern und wieder auf die gleiche Position zu schreiben.
Sobald ich auf die Datai schreiben will bekomme ich folgende Fehlermeldung.
Ein Ausnahmefehler des Typs "System.IO.IOException" ist in mscorlib.dll aufgetreten.
Zusätzliche Informationen: Der Prozess kann nicht auf die Datei "C:\Users\Textdatei.txt" zugreifen, da sie von einem anderen Prozess verwendet wird.
Das kuriose ist dabei daß nach der oberen aktion ich eine andere Textdatei lese und ändere (anderer pfad). Hier funktioniert alles.
Gibt es eine Möglichkeit herauszufinden von welchem Prozess die Datei verwendet wird?
Mein Prog ist einwenig umfangreicher. Der Teil aber der die Dateien bearbeiten soll sieht so aus:
' Anpassen der Parameter
Pfad = Datei1_pfad
Dim Datei1_lines() As String = System.IO.File.ReadAllLines(Pfad)
Dim Zähler As Integer
For Zähler = 0 To src_lines.Length - 1
If Datei1_lines(Zähler).ToUpper.Contains("ABC") And Not Datei1_lines(Zähler).ToUpper.Contains("CBA") Then
Datei1_lines(Zähler) = ("")
Datei1_lines(Zähler) = ("ABC ist gleich wie CBA")
End If
If Datei1_lines(Zähler).ToUpper.Contains("EFG") Then
Datei1_lines(Zähler) = ("")
Datei1_lines(Zähler) = ("HIJKLMNOP")
End If
Next
'FileClose()
System.IO.File.WriteAllLines(Pfad, Datei1_lines) An dieser Stelle tritt der Fehler auf
Pfad = Datei2_pfad
Dim a1_abgearbeitet, a2_abgearbeitet As Boolean
a2_abgearbeitet = False
Dim datei2_lines() As String = System.IO.File.ReadAllLines(Pfad)
For Zähler = 0 To datei2_lines.Length - 1
If datei2_lines(Zähler).ToUpper.Contains("irgendwas") Then
datei2_lines(Zähler) = ("") ' Zeile löschen
If a2_abgearbeitet = False Then
datei2_lines(Zähler) = ("")
'dat_lines(Zähler).Remove(dat_lines(Zähler))
datei2_lines(Zähler) = ("irgendetwas anderes"}
a2_abgearbeitet = True
Else
'dat_lines(Zähler).Remove(dat_lines(Zähler))
datei2_lines(Zähler) = ("")
End If
End If
Next
System.IO.File.WriteAllLines(Pfad, datei2_lines)
End Sub