Entwickler-Ecke

WinForms - ListBox speichern und Anzeige der Umlaute


Lihlu - Fr 26.10.12 22:39
Titel: ListBox speichern und Anzeige der Umlaute
Hallo zsm,

Ich habe eine ListBox in die ich aus einer Txt Datei Daten einlese. Doch diese erscheinen dann in er ListBox immer mit Sonderzeichen. Momentan sieht es wie folgt aus:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
 string Pfad = string.Empty;


            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                Pfad = openFileDialog1.FileName;
            }

            String[] zeilen;
            try
            {
                zeilen = File.ReadAllLines(Pfad, Encoding.UTF8); //Normalerweise sollte das eig dafür sorgen tut es aber nicht :/
                if (File.Exists(Pfad))
                {

                    foreach (String zeile in zeilen)
                    {
                        listBoxDaten.Items.AddRange(File.ReadAllLines(Pfad));
                        Statusbalken.Value = 30;


                        Statuslabel.Text = "Laden erfolgreich!";

                    }

                }
            }
            catch
            {
                Statuslabel.Text = "Laden fehlgeschlagen!";
                Statusbalken.Value = 0;

            }


Jemand eine Idee was hier Falsch läuft :/ ?

Und dann möchte ich gerne die ganze ListBox auch wieder Speichern!
Wie funktioniert das ?


Wäre für jede Antwort dankbar
Schönes Wochenende
Gruß
Lihlu

Moderiert von user profile iconTh69: Titel geändert.


Christian S. - Sa 27.10.12 11:37

Hi!

Hat die entsprechende Datei denn UTF8 als Encoding?

Grüße,
Christian


Lihlu - Mi 07.11.12 20:55

Hey Danke für deine Antwort,

Ya die .txt Datei habe ich extra noch mal in UTF8 abgespeichert doch leider geht es immer noch nicht :/

----

Das mit dem speichern ist geklärt verbleibt nur noch das mit den Umlauten.

Gruß
Lihlu


Th69 - Do 08.11.12 13:32

Hallo Lihlu,

dein Code ist ein wenig krude:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
zeilen = File.ReadAllLines(Pfad, Encoding.UTF8); //Normalerweise sollte das eig dafür sorgen tut es aber nicht :/
if (File.Exists(Pfad))
{
    foreach (String zeile in zeilen)
    {
        listBoxDaten.Items.AddRange(File.ReadAllLines(Pfad));

        // ...
    }
}

Überlege dir noch mal genau, was deine foreach-Schleife bewirkt :wink:


Lihlu - Mo 12.11.12 13:44

xD Danke dir :)
Aber das ist mir letztens auch schon aufgefallen :D Ich hatte mich schon gewundert warum auf einmal so viel in meiner ListBox steht :-) .

--------
Das mit den umlauten habe ich auch gelöst > Ich musste die Datei in Unicode abspeichern und nicht in UTF8. Warum auch immer :D Hauptsache es funktioniert.

Danke
Gruß
Lihlu