Hallo ihr,
ich bin neu hier, entwickle aber schon eine ganze Zeit in C++/C# und sonstigen.
Ich habe hier ein leider wohl sehr triviales Problem an dem ich nicht vorbei komme.
Folgendes:
Ich muss Files auslesen und diese in eine TextBox.MultiLine einfügen.
Nun mein Problem. Ich habe es mit
TextBox.Lines.setValue("String",Zeilenindex);
probiert. Macht er aber nicht. Auch habe ich
TextBox.AppendText("String");
probiert. Er springt mir jedesmal da in den Catch-Block.
Da ich das erste Mal mit eine TextBox.MultiLine arbeite bitte ich euch um Hilfe.
Wir schreibe ich da richtig rein und lese den Inhalt wieder aus?
Danke
schmalhans
TextBox ist die Klasse, nicht das instanzierte Objekt.
TextBox nameDerTextBox = new TextBox();
nameDerTextBox.Lines.setValue("String",Zeilenindex);
nameDerTextBox.AppendText("String");
.. müsste eigentlich gehen. Zumindest AppendText(), Lines habe ich bisher noch nie benutzt.
Etwas nicht tun zu können, ist kein Grund etwas nicht zu tun.
-Alf
Ich weiß dass TextBox die Klasse und nicht die Instanz ist. Habe das nur aus Verständnisgründen so aufgeführt. Das mit Lines.setValue funktioniert leider nicht.
Ich gehe doch recht in der Annahme, dass Index 0 die erste Zeile ist, 1 die 2. usw?
So wie sonst auch immer.
Original von schmalhans
Er springt mir jedesmal da in den Catch-Block.
Wann werden wohl die Fehlermeldungen mal mitgepostet?
Es gibt hier ja keine Fehlermeldung, da er im try-Block nur das Lines.setValue steht. Und sobald dies nicht funktioniert gehts ab in den catch-Block.
Ein catch Block deutet meist auf eine Exception hin. Eine Exception deutet meist auf eine Fehlermeldung ( Message ) hin.
Hoppla,
entschuldigung war eine dumme Frage. Hab grad nicht gedacht.
Exception wirft folgendes zurück:
"Der Indexbereich war außerhalb des Arraybereichs"
Wobei hier jetzt mein Index "0" war.
Wie kann das sein?
catch (Exception ex)
{
string message = ex.Message;
}
Hoppla,
entschuldigung war eine dumme Frage. Hab grad nicht gedacht.
Exception wirft folgendes zurück:
"Der Indexbereich war außerhalb des Arraybereichs"
Wobei hier jetzt mein Index "0" war.
Wie kann das sein?
Mach es doch einfach mal so:
du liest einfach deine Daten aus und schreibst diese nacheinander in die Textbox.
also so:
// Schleife (foreach oder so, mit denen du deine Daten durchläufst).
foreach(string file in ...)
{
this.tbx.Append(file + Environment.NewLine);
}
Das sollte dann so funktionieren...
ciao Anke
habe das ganze jetzt so gelöst.
textBox1.Text = textBox1.Text+ "string" + Environment.NewLine;
Danke für die Hilfen.
Nun habe ich aber ein weiteres Problem.
Und zwar stehen in der Datei Umlaute(ä,ö,ü)
Ich lese die Datei mit einen StreamReader aus und benutze hier die Funktion .ReadLine.
Diese liest aber die Umlaute nicht.
In der Datei steht zb:
"Türe"
Ausgabe des StreamReaders
"Tre"
Woran liegt das?
Dazu mußt du Encoding verwenden 😉
public StreamReader(string, Encoding);
Initialisiert eine neue Instanz der StreamReader-Klasse für den angegebenen Stream mit der angegebenen Zeichencodierung und der Option für die Erkennung der Markierung für die Bytereihenfolge.
Ok.... Danke für die Hilfe.
Aber ich steh glaub ich aufn Schlauch.
Bei mir siehts im Moment so aus:
StreamReader datei;
datei = File.OpenText(strPfad);
strTest = datei.ReadLine();
Wo müsste ich da das Encoding einbauen. Ich weiß, dass ein Forum keine Source-Generierungsmaschine ist, aber könnte ich trotzdem bitte ein Code-Beispiel haben. Wäre sehr freundlich. Da ich langsam verzweifel. Danke.
Wie hurricane bereits schrieb: In den StreamReader.
Mach einfach
StreamReader datei = new StreamReader(....
warum brauchst du dieses setValue?
mach doch einfach TextBox.AppendText("neuer text"); oder TextBox.Text = text;
danke für die tipps.
habe jetzt den streamreader umgestellt und sehe als 2. Argument/Parameter
"System.Text.Encoding.*"
Hier sind ein paar Encoding angegeben. Diese habe ich jetzt durchgetestet und die Umlaute verschwinden immer noch.
Muss ich auf noch was achten?
Ich hoffe ihr habt noch die Geduld mit mir. Danke.
@unreal: dieses problem ist schon gelöst. trotzdem danke.
Genau das gleich hatte ich auch letztens, echt blöd das ganze...
hiermit umgesht du das:
System.Text.Encoding.GetEncoding("ISO-8859-1")
Recht herzlichen Dank hurricane und allen die sich beteiligt haben!
mit "System.Text.Encoding.GetEncoding("ISO-8859-1")" hat es wirklich funktioniert.
Finde es nur etwas komisch, dass man einen externen Encoder erzeugen muss. Das könnt MS mal implementieren.
Nochmals danke. Jetzt kann ich wenigstens in Ruhe schlafen 😉
Hallo schmalhans,
Ich weiß, dass ein Forum keine Source-Generierungsmaschine ist
aber das Forum hat eine Source-Suchmaschine http://www.mycsharp.de/wbb2/search.php
Einfach mal Encoding eingegeben, und du hättest dir und uns vermutlich die Nachfragen sparen können.
herbivore