Autor Beitrag
mariot
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.07.07 13:43 
Hallo,
Ich muss für meine Schule ein Programm schreiben, wo ich aus einer Listbox eine Text Datei auswählen kann, welche dann in eine Textbox ausgelesen wird. Der Auslöser dazu ist ein Menü Eintrag. Desweiteren müssen wir eine Fehlermeldung ausgeben, wenn die Datei nicht vorhanden ist, darauf soll dann der Eintrag aus der Listbox gelöscht werden. Und hier liegt auch mein Problem, wie ich dan den Eintrag aus der Liste wieder gelöscht kriege :P

Das ist meine Klasse TextDatei, welche ich zum Auslesen benutze.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
class TextDatei
{
            public string ReadFile(String sFilename)
            {

                string sContent = "";

                if (File.Exists(sFilename))
                {
                    StreamReader myFile = new StreamReader(sFilename, System.Text.Encoding.Default);
                    sContent = myFile.ReadToEnd();
                    myFile.Close();
                }
                else
                {
                    sContent = "Ihre Datei konnte nicht gefunden werden.";
                }

                return sContent;

            }
}



Hier ist der Quellcode von dem Menu Eintrag der als Auslöser dient:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private void dateiAnzeigenToolStripMenuItem_Click(object sender, EventArgs e)
        {

            TextDatei o_textdatei = new TextDatei();
            try 
            {
                string fs = o_textdatei.ReadFile(lsbDateien.SelectedItem.ToString());
                txtAnzeige.Text = fs;
            }
            catch
            {
                txtAnzeige.Text = "Bitte wählen Sie einen Eintrag aus der Liste aus";
            }
}
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von mariot am Di 03.07.07 11:21, insgesamt 1-mal bearbeitet
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 02.07.07 14:07 
Hallo,

mit folgenden Begriffen solltest Du Erfolg haben:
ListBox - Items - RemoveAt

Gruß Jürgen
mariot Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.07.07 14:19 
Hallo Jürgen,

Danke für den Richtigen Befehl. Jetzt müsst ich nur noch wissen wo ich den einbinden kann. Am logischsten erscheint es mir in der else Schleife von meiner TextDatei Klasse, doch kann ich den Befehl ja nicht einfach so dort reinschreiben. Kann mir vielleicht jemand auf mein Bsp. bezogen sagen wie ich aus einer Klasse raus auf die Eigenschaften meiner Forms zugreifen kann?

greetz
Mario
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 02.07.07 15:29 
Hallo Mario,

für meinen Geschmack macht die Klasse TextDatei das Ganze komplizierter als nötig. Aber es kann natürlich sein, dass die Aufgabenstellung so etwas erfordert.

Konkret glaube ich, dass die folgende Stelle am besten passt:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
string fs = o_textdatei.ReadFile(lsbDateien.SelectedItem.ToString());
if (String.IsNullOrEmpty(fs))
    //  hier Remove
else
    txtAnzeige.Text = fs;

Gruß Jürgen
mariot Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.07.07 16:29 
Hi Jürgen,

Danke nochmal für die Hilfe, die Stelle war die richtige, nur hab ichs mal mit meiner eigenen Methode versucht :P

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
if (!File.Exists(lsbDateien.SelectedItem.ToString()))
  {
   txtAnzeige.Text = fs;
   lsbDateien.Items.RemoveAt(lsbDateien.SelectedIndex);
  }
else
  {
   txtAnzeige.Text = fs;
  }


greetz
Mario