Benutzer mit den meisten Antworten
Datei Einlesen aus Textdatei in eine Textbox

Frage
Antworten
-
Hallo Text aus Textdatei in eine Textbox einlesen,
Vielen Dank für Deine Frage und Beitrag!
Erstmals möchte ich Dich bitten Deinen Anzeigenamen in den Foren zu ändern (es klingt komisch „Hallo Text aus Textdatei in eine Textbox einlesen“) mithilfe des folgenden Links à http://social.msdn.microsoft.com/Profile/u/Edit
Ich danke Dir für Dein Verständnis!
Jetzt zu Deinem Problem J à Wenn Du eine Text Datei hasst die Deutsche Umlaute im Text verwendet, wird die Datei mit dem falschen Encoding gelesen. Du kannst die Datei aber mit 'StreamReader' und dem Encoding 'System.Text.Encoding.Default' einlesen, dann wird die Windows-Codepage verwendet und ggf. die Umlaute korrekt gelesen. Eventuell kannst Du auch das RichTextBox Steuerelement verwenden das besser für solche Zwecke geeignet ist.
[Beispiel Code]
using System; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //string s = System.IO.File.ReadAllText(@"C:\Robert\Forums\end_text.txt"); //textBox1.Text = s; //richTextBox1.Text = s; StreamReader sr = new StreamReader(@"C:\Robert\Forums\end_text.txt",System.Text.Encoding.Default,true); richTextBox1.Text = sr.ReadToEnd(); textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Both; textBox1.Height = 200; textBox1.Text = richTextBox1.Text; } } }
Danke und Grüße,
Robert
- Als Antwort vorgeschlagen Frank Dzaebel Mittwoch, 8. September 2010 05:42
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
Hallo Robert
die Kurzversion (ohne sich um Stream-Dispose kümmern zu müssen) wäre grob:
textBox1.Text = File.ReadAllText(@"C:\Pfad\text.txt", Encoding.Default);- Als Antwort vorgeschlagen Daniel Bedarf Dienstag, 7. September 2010 12:40
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
da passt etwa:
File.ReadAllLines
http://msdn.microsoft.com/de-de/library/bsy4fhsa.aspx
Grob Bsp (hier mind. 2 Zeilen vorausgesetzt):
string[] readLines = File.ReadAllLines(@"C:\Pfad\text.txt", Encoding.Default);
textBox1.Text = readLines[0];
textBox2.Text = readLines[1];- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
geht das auch umgekehrt als von der Textbox in die .txt Speichern ?
mögliche Variante:
File.WriteAllLines
http://msdn.microsoft.com/de-de/library/3det53xh.aspxBsp etwa:
string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
Hallo,
Du solltest die Dokumentation lesen zu den Methoden, die man Dir bereits genannt hat.
Eine allgemeine Einführung gibt zudem: Grundlegende Datei-E/A
Auch solltest Du Dich beschäftigen mit: Auflistungen und Datenstrukturen
beides benötigt man beim Programmieren ständig.Eine Möglichkeit jede TextBox einzeln zu versorgen:
using System; using System.IO; using System.Text; using System.Windows.Forms; namespace ElmarBoye.Samples { public partial class TextBoxenForm : Form { const string DateiName = @"C:\TEMP\TEST.TXT"; // Name der Datei TextBox[] textAusgaben; public TextBoxenForm() { InitializeComponent(); // Die TextBox Steuerelemente, die für die Ausgabe verwendet werden. textAusgaben = new [] { this.textBox1, this.textBox2, this.textBox3, this.textBox4, this.textBox5 }; } // Einlesen aus der Datei private void lesenButton_Click(object sender, EventArgs e) { string[] eingabe = null; try { // einlesen der Datei in ein String-Array eingabe = File.ReadAllLines(DateiName, Encoding.Default); } catch (Exception ex) { // Datei nicht vorhanden ... MessageBox.Show("Fehler beim Einlesen:\r\n", ex.Message); return; } // Die Zeilen Steuerelementen zuweisen for (int index = 0; index < textAusgaben.Length; index++) { // Die TextBox für diese Zeile var textBox = textAusgaben[index]; if (index < eingabe.Length) { textBox.Text = eingabe[index]; } // Keine Daten mehr vorhanden => Leer else { textBox.Text = String.Empty; } } } // Schreiben in die Datei private void schreibenButton_Click(object sender, EventArgs e) { string[] ausgabe = new string[textAusgaben.Length]; // Die Werte aus den Steuerelementen übertragen for (int index = 0; index < textAusgaben.Length; index++) { var textBox = textAusgaben[index]; ausgabe[index] = textBox.Text.Trim(); } try { // und in Datei schreiben File.WriteAllLines(DateiName, ausgabe, Encoding.Default); } catch (Exception ex) { // Datei belegt, kein Zugrifff... MessageBox.Show("Fehler beim Schreiben:\r\n", ex.Message); return; } } // Setzt alle TextBoxen zurück private void loeschenButton_Click(object sender, EventArgs e) { for (int index = 0; index < textAusgaben.Length; index++) { var textBox = textAusgaben[index]; textBox.Text = String.Empty; } } } }
Beachte die Zuweisung in InitializeComponent, wo Du die TextBox-Steuerelemente
festlegen mußt, die Du dafür verwenden willst.Gruß Elmar
P. S.: Folge bitte Roberts Anleitungen und ändere Deinen Namen in der Anzeige.
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 10. September 2010 07:06
Alle Antworten
-
Im Grunde musst du ja nur den Text in eine String-Variable einlesen und diese dann der Text-Eigenschaft der TextBox zuweisen. Ich denke, den zweiten Teil bekommst du gut alleine hin. Ein einfaches Beispiel für den ersten Teil findest du z.B. unter http://www.csharp411.com/c-read-text-file-into-string/ Auch in der MSDN gibt es ein paar Beispiele z.B. http://msdn.microsoft.com/de-de/library/db5x7c0d.aspx
- Bearbeitet Robert BreitenhoferModerator Dienstag, 7. September 2010 08:52 Hyperlink als Hyperlink
-
Hallo Text aus Textdatei in eine Textbox einlesen,
Vielen Dank für Deine Frage und Beitrag!
Erstmals möchte ich Dich bitten Deinen Anzeigenamen in den Foren zu ändern (es klingt komisch „Hallo Text aus Textdatei in eine Textbox einlesen“) mithilfe des folgenden Links à http://social.msdn.microsoft.com/Profile/u/Edit
Ich danke Dir für Dein Verständnis!
Jetzt zu Deinem Problem J à Wenn Du eine Text Datei hasst die Deutsche Umlaute im Text verwendet, wird die Datei mit dem falschen Encoding gelesen. Du kannst die Datei aber mit 'StreamReader' und dem Encoding 'System.Text.Encoding.Default' einlesen, dann wird die Windows-Codepage verwendet und ggf. die Umlaute korrekt gelesen. Eventuell kannst Du auch das RichTextBox Steuerelement verwenden das besser für solche Zwecke geeignet ist.
[Beispiel Code]
using System; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //string s = System.IO.File.ReadAllText(@"C:\Robert\Forums\end_text.txt"); //textBox1.Text = s; //richTextBox1.Text = s; StreamReader sr = new StreamReader(@"C:\Robert\Forums\end_text.txt",System.Text.Encoding.Default,true); richTextBox1.Text = sr.ReadToEnd(); textBox1.Multiline = true; textBox1.ScrollBars = ScrollBars.Both; textBox1.Height = 200; textBox1.Text = richTextBox1.Text; } } }
Danke und Grüße,
Robert
- Als Antwort vorgeschlagen Frank Dzaebel Mittwoch, 8. September 2010 05:42
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
Hallo Robert
die Kurzversion (ohne sich um Stream-Dispose kümmern zu müssen) wäre grob:
textBox1.Text = File.ReadAllText(@"C:\Pfad\text.txt", Encoding.Default);- Als Antwort vorgeschlagen Daniel Bedarf Dienstag, 7. September 2010 12:40
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
da passt etwa:
File.ReadAllLines
http://msdn.microsoft.com/de-de/library/bsy4fhsa.aspx
Grob Bsp (hier mind. 2 Zeilen vorausgesetzt):
string[] readLines = File.ReadAllLines(@"C:\Pfad\text.txt", Encoding.Default);
textBox1.Text = readLines[0];
textBox2.Text = readLines[1];- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
geht das auch umgekehrt als von der Textbox in die .txt Speichern ?
mögliche Variante:
File.WriteAllLines
http://msdn.microsoft.com/de-de/library/3det53xh.aspxBsp etwa:
string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 9. September 2010 06:36
-
geht das auch umgekehrt als von der Textbox in die .txt Speichern ?
mögliche Variante:
File.WriteAllLines
http://msdn.microsoft.com/de-de/library/3det53xh.aspxBsp etwa:
string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default); -
geht das auch umgekehrt als von der Textbox in die .txt Speichern ?
mögliche Variante:
File.WriteAllLines
http://msdn.microsoft.com/de-de/library/3det53xh.aspxBsp etwa:
string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);
Morgen,
das geschiet durch das @ vor dem String
-
Hat soweit alles super geklappt. - Finde das echt super hier.
Habe jetzt ein Button zum Schreiben und zum auslesen angelegt.
Jetzt Meckert er wenn ich beides in folge mache , das er gerade auf die datei zugreift - kann ich das irgendwie noch anpassen ?
-
Habe jetzt ein Button zum Schreiben und zum auslesen angelegt.
Jetzt Meckert er wenn ich beides in folge mache , das er gerade auf die datei zugreift - kann ich das irgendwie noch anpassen ?
dies kann eigentlich fast nur sein wenn du die erste Variante mit 'StreamReader' nimmst.
Denn dort fehlt am Ende noch das freigeben etwa mittels:
sr.Dispose();
bzw 'using' -Hilfskonstrukt:
http://msdn.microsoft.com/de-de/library/yh598w02.aspx
Code grob:using (StreamReader sr = new StreamReader(@"C:\Pfad\text.txt", Encoding.Default, true)) { richTextBox1.Text = sr.ReadToEnd(); }
-
Jetzt tun sich 2 große ?? auf !
Poste jetzt mal meinen Quellcode (wirrwarr) WO muss ich das jetzt und wie Ändern?
using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
StreamReader sr = new
StreamReader(@"C:\end_text.txt", System.Text.Encoding.Default, true);
TextAusgabe_1.Text = sr.ReadToEnd();
TextAusgabe_2.Text = sr.ReadLine();
//TextAusgabe_1.Multiline = true;
//TextAusgabe_1.ScrollBars = ScrollBars.Both;
//TextAusgabe_1.Height = 200;
//TextBox1.Text = richTextBox1.Text;
}
private void button2_Click(object sender, EventArgs e)
{
string[] createText = new string[] { TextAusgabe_1.Text }; //, TextAusgabe_2.Text, "BlaBla" };
File.WriteAllLines(@"C:\end_text.txt", createText, Encoding.Default);
}
}
} -
Hallo,
Du solltest die Dokumentation lesen zu den Methoden, die man Dir bereits genannt hat.
Eine allgemeine Einführung gibt zudem: Grundlegende Datei-E/A
Auch solltest Du Dich beschäftigen mit: Auflistungen und Datenstrukturen
beides benötigt man beim Programmieren ständig.Eine Möglichkeit jede TextBox einzeln zu versorgen:
using System; using System.IO; using System.Text; using System.Windows.Forms; namespace ElmarBoye.Samples { public partial class TextBoxenForm : Form { const string DateiName = @"C:\TEMP\TEST.TXT"; // Name der Datei TextBox[] textAusgaben; public TextBoxenForm() { InitializeComponent(); // Die TextBox Steuerelemente, die für die Ausgabe verwendet werden. textAusgaben = new [] { this.textBox1, this.textBox2, this.textBox3, this.textBox4, this.textBox5 }; } // Einlesen aus der Datei private void lesenButton_Click(object sender, EventArgs e) { string[] eingabe = null; try { // einlesen der Datei in ein String-Array eingabe = File.ReadAllLines(DateiName, Encoding.Default); } catch (Exception ex) { // Datei nicht vorhanden ... MessageBox.Show("Fehler beim Einlesen:\r\n", ex.Message); return; } // Die Zeilen Steuerelementen zuweisen for (int index = 0; index < textAusgaben.Length; index++) { // Die TextBox für diese Zeile var textBox = textAusgaben[index]; if (index < eingabe.Length) { textBox.Text = eingabe[index]; } // Keine Daten mehr vorhanden => Leer else { textBox.Text = String.Empty; } } } // Schreiben in die Datei private void schreibenButton_Click(object sender, EventArgs e) { string[] ausgabe = new string[textAusgaben.Length]; // Die Werte aus den Steuerelementen übertragen for (int index = 0; index < textAusgaben.Length; index++) { var textBox = textAusgaben[index]; ausgabe[index] = textBox.Text.Trim(); } try { // und in Datei schreiben File.WriteAllLines(DateiName, ausgabe, Encoding.Default); } catch (Exception ex) { // Datei belegt, kein Zugrifff... MessageBox.Show("Fehler beim Schreiben:\r\n", ex.Message); return; } } // Setzt alle TextBoxen zurück private void loeschenButton_Click(object sender, EventArgs e) { for (int index = 0; index < textAusgaben.Length; index++) { var textBox = textAusgaben[index]; textBox.Text = String.Empty; } } } }
Beachte die Zuweisung in InitializeComponent, wo Du die TextBox-Steuerelemente
festlegen mußt, die Du dafür verwenden willst.Gruß Elmar
P. S.: Folge bitte Roberts Anleitungen und ändere Deinen Namen in der Anzeige.
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 10. September 2010 07:06