Red Sun
Lt. Commander
- Registriert
- Dez. 2010
- Beiträge
- 1.141
Hi Folks!
Also, seit kurzer Zeit beschäftige ich mich betrieblich mit C# (Ich bin Student und habe jetzt meine Praxisphase... naja, nebensächlich).
Hierfür habe ich die ein oder Schulungsunterlage. In einer davon ist ein Übungsprojekt zu einem kleinen Texteditor
(Um den Umgang mit Dateien und Streams zu üben bzw. lernen).
Wie auch immer, ich bin jetzt eigentlich soweit, dass ich Dateien öffnen & speichern kann. Wenn ich jedoch eine bereits vorhandene Datei speichern will, öffnet sich trotz allem noch der SaveFileDialog und das soll ja normalerweise nicht sein.
Ich habe schon so einiges rumprobiert, verstehe aber einfach nicht wo der Fehler liegt. Laut PDF müsste es eigentlich funktionieren...
Und bitte entschuldigt falls der programmier-Stil irgendwie schlecht ist, wie gesagt, bin noch Anfänger...
Ratschläge nehme ich aber gerne entgegen!
Ich hoffe ihr könnt mir irgendwie helfen damit:
Achja, dass Ganze ist natürlich mit einer Windows-Form realisiert..
Grüße, Red Sun
Also, seit kurzer Zeit beschäftige ich mich betrieblich mit C# (Ich bin Student und habe jetzt meine Praxisphase... naja, nebensächlich).
Hierfür habe ich die ein oder Schulungsunterlage. In einer davon ist ein Übungsprojekt zu einem kleinen Texteditor
(Um den Umgang mit Dateien und Streams zu üben bzw. lernen).
Wie auch immer, ich bin jetzt eigentlich soweit, dass ich Dateien öffnen & speichern kann. Wenn ich jedoch eine bereits vorhandene Datei speichern will, öffnet sich trotz allem noch der SaveFileDialog und das soll ja normalerweise nicht sein.
Ich habe schon so einiges rumprobiert, verstehe aber einfach nicht wo der Fehler liegt. Laut PDF müsste es eigentlich funktionieren...
Und bitte entschuldigt falls der programmier-Stil irgendwie schlecht ist, wie gesagt, bin noch Anfänger...
Ratschläge nehme ich aber gerne entgegen!
Ich hoffe ihr könnt mir irgendwie helfen damit:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Dateien_und_Streams
{
public partial class Form1 : Form
{
string strFileLocation = null; // enthält Information über den Speicherort der Textdatei
public Form1()
{
InitializeComponent();
SetFormTitle();
}
// Ereignishandler des Klick-Ereignisses "Öffnen"
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e)
{
{
OpenFileDialog dlgOpenTxt = new OpenFileDialog();
dlgOpenTxt.Title = "Textdatei öffnen";
dlgOpenTxt.Filter = "Textdateien (*.txt)|*.txt";
if (dlgOpenTxt.ShowDialog() == DialogResult.OK)
{
try
{
StreamReader srOpenTextFile = new StreamReader(dlgOpenTxt.FileName);
txtMainText.Text = srOpenTextFile.ReadToEnd();
strFileLocation = dlgOpenTxt.FileName; //
SetFormTitle(); // Titel der Form anpassen.
srOpenTextFile.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Texteditor");
}
}
}
}
// Methode zum Speichern des Textboxinhalts (Textboxinhalt wird an einen Stream übergeben)
public void SaveToFile()
{
try
{
StreamWriter swSaveTextFile = new StreamWriter(strFileLocation, false);
swSaveTextFile.Write(txtMainText.Text);
swSaveTextFile.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
txtMainText.Modified = false;
}
// Methode zum Überprüfen ob Inhalt der Textbox bereits gespeichert ist
private void DocumentSaved()
{
SaveFileDialog dlgSaveText = new SaveFileDialog();
dlgSaveText.Filter = "Textdatei (*.txt)|*.txt";
dlgSaveText.AddExtension = true;
dlgSaveText.DefaultExt = "txt";
if (strFileLocation != null && strFileLocation.Length > 0)
{
dlgSaveText.FileName = strFileLocation;
}
if (dlgSaveText.ShowDialog() == DialogResult.OK)
{
strFileLocation = dlgSaveText.FileName;
SaveToFile();
SetFormTitle();
}
}
// Methode um Dateinamen in der Titelleiste anzuzeigen
private void SetFormTitle()
{
if (strFileLocation == null || strFileLocation.Length == 0)
{
this.Text = "Unbenannt - " + "Texteditor";
}
else
{
this.Text = Path.GetFileName(strFileLocation) + " - " + "Texteditor";
}
}
// Ereignishandler des Klick-Ereignisses "Speichern"
private void speichernToolStripMenuItem_Click(object sender, EventArgs e)
{
if (strFileLocation == null || strFileLocation.Length == 0)
{
DocumentSaved();
}
else
{
SaveToFile();
}
}
// Ereignishandler des Klick-Ereignisses "Speichern unter..."
private void speichernUnterToolStripMenuItem_Click(object sender, EventArgs e)
{
DocumentSaved();
}
// Ereignishandler des Klick-Ereignisses "Beenden"
private void beendenToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult exit = MessageBox.Show("Wollen sie wirklich beenden?\nAlle nicht gespeicherten Änderungen gehen verloren!", "Anwendung beenden",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question);
if (exit == DialogResult.OK)
{
Application.Exit();
}
else
{
// Abbrechen...
}
}
}
}
Achja, dass Ganze ist natürlich mit einer Windows-Form realisiert..
Grüße, Red Sun