Hallo Zusammen,
ich würde gerne um eure Hilfe bzw. einen Rat bitten. Unten stehendes Programm ist teil einer Hausaufgabe und obwohl es sicher kürzere, bessere Lösungsmöglichkeiten gibt soll es in dieser Art erstellt werden. Das Programm öffnet und speichert Dateien. Soweit funktioniert alles, nur wenn ich ein existierende Datei öffne, ändere und unter dem selben Dateinamen speichern möchte erhalte ich die Fehlermeldung dass auf die Datei nicht zugegriffen werden kann da sie bereits von einem anderen Prozess (wahrscheinlich der Teil dlgDateiOeffnen) genutzt wird. Habe es auch mit My.Computer.FileSystem.WriteAllText versucht, Fehler bleibt aber der selbe. Vorab schon vielen Dank und bitte entschuldigt mögliche "Fehler" oder Schwachstellen in meinem Post, ist meine erste Anfrage hier.
Gr.
MY.NAME.
ich würde gerne um eure Hilfe bzw. einen Rat bitten. Unten stehendes Programm ist teil einer Hausaufgabe und obwohl es sicher kürzere, bessere Lösungsmöglichkeiten gibt soll es in dieser Art erstellt werden. Das Programm öffnet und speichert Dateien. Soweit funktioniert alles, nur wenn ich ein existierende Datei öffne, ändere und unter dem selben Dateinamen speichern möchte erhalte ich die Fehlermeldung dass auf die Datei nicht zugegriffen werden kann da sie bereits von einem anderen Prozess (wahrscheinlich der Teil dlgDateiOeffnen) genutzt wird. Habe es auch mit My.Computer.FileSystem.WriteAllText versucht, Fehler bleibt aber der selbe. Vorab schon vielen Dank und bitte entschuldigt mögliche "Fehler" oder Schwachstellen in meinem Post, ist meine erste Anfrage hier.
Gr.
MY.NAME.
VB.NET-Quellcode
- Imports System.IO
- Public Class frmEditor
- Private datei As String
- Private s As String
- Private t As String
- Private Sub ÖffnenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ÖffnenToolStripMenuItem.Click
- With dlgDateiOeffnen
- .AddExtension = True
- .DefaultExt = ".txt"
- .Filter = "Text (*.txt)|*.txt| Alle Dateien (*.*)|*.*"
- .Title = "Datei öffnen"
- .ValidateNames = True
- .FileName = datei
- End With
- dlgDateiOeffnen.ShowDialog()
- Dim lesen As New FileStream(dlgDateiOeffnen.FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
- Dim sr As New StreamReader(lesen)
- txtText.Text = sr.ReadToEnd()
- 'datei = dlgDateiOeffnen.FileName
- End Sub
- Private Sub SpeichernUnterToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SpeichernUnterToolStripMenuItem.Click
- With dlgDateiSpeichern
- .AddExtension = True
- .DefaultExt = ".txt"
- .Filter = "Text (*.txt)|*.txt| Alle Dateien (*.*)|*.*"
- .Title = "Datei speichern"
- .ValidateNames = True
- '.FileName = datei
- End With
- dlgDateiSpeichern.ShowDialog()
- datei = dlgDateiSpeichern.FileName
- If IO.File.Exists(datei) Then
- s = "Die Datei " & datei & " existiert bereits." & vbCrLf & "Soll diese überschrieben werden?"
- Else s = "Die Datei existiert noch nicht." & vbCrLf & "Soll diese erstellt werden?"
- End If
- If MessageBox.Show(s, datei, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) = DialogResult.No Then
- Exit Sub
- My.Computer.FileSystem.DeleteFile(datei)
- End If
- Dim sw As New StreamWriter(datei)
- dlgDateiSpeichern.FileName = ""
- sw.Write(txtText.Text)
- sw.Close()
- Close()
- 'txtText.Text = ""
- End Sub
- Private Sub NEUToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NEUToolStripMenuItem.Click
- If txtText.Modified Then
- Dim s = "Der Inhalt wurde geändert." & vbCrLf & "Schliessen ohne zu speichern?"
- If MessageBox.Show(s, datei, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) = DialogResult.No Then
- Exit Sub
- End If
- End If
- Close()
- End Sub
- Private Sub BeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BeendenToolStripMenuItem.Click
- If txtText.Modified Then
- Dim s = "Der Inhalt wurde geändert." & vbCrLf & "Schliessen ohne zu speichern?"
- If MessageBox.Show(s, datei, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) = DialogResult.No Then
- Exit Sub
- End If
- End If
- Close()
- End Sub
- End Class