none
Datei Einlesen aus Textdatei in eine Textbox RRS feed

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

    Dienstag, 7. September 2010 09:24
    Moderator
  • 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);

    http://msdn.microsoft.com/de-de/library/ms143369.aspx

    Dienstag, 7. September 2010 09:32
  • 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];
    Mittwoch, 8. September 2010 23:21
  • 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.aspx

    Bsp etwa:
    string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
    File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);

    Donnerstag, 9. September 2010 00:30
  • 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.

     

    Donnerstag, 9. September 2010 18:29
    Beantworter

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

    Dienstag, 7. September 2010 05:45
  • 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

    Dienstag, 7. September 2010 09:24
    Moderator
  • 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);

    http://msdn.microsoft.com/de-de/library/ms143369.aspx

    Dienstag, 7. September 2010 09:32
  • Der QuellCode von Robert hat mir schon sehr gehofen .

     

    Kannste mir noch verraten wie ich  zb. Zeile 1 des. txt-files  in die eine textbox und zb Zeile 2  in die andere textbox bekomme.

     

     

    Danke

    Mittwoch, 8. September 2010 23:11
  • 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];
    Mittwoch, 8. September 2010 23:21
  • Danke klappt.

     

    geht das auch umgekehrt als von der Textbox in die .txt Speichern ?

    Mittwoch, 8. September 2010 23:48
  • 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.aspx

    Bsp etwa:
    string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
    File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);

    Donnerstag, 9. September 2010 00:30
  • 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.aspx

    Bsp etwa:
    string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
    File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);

    Sind Dateipfade nicht mit C://Pfad zu kennzeichen
    Donnerstag, 9. September 2010 06:51
  • 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.aspx

    Bsp etwa:
    string[] createText = new string[] { textBox1.Text, textBox2.Text, "BlaBla" };
    File.WriteAllLines(@"C:\Pfad\NeuerText.txt", createText, Encoding.Default);

    Sind Dateipfade nicht mit C://Pfad zu kennzeichen

    Morgen,

    das geschiet durch das @ vor dem String

    Donnerstag, 9. September 2010 07:31
  • 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 ?

    Donnerstag, 9. September 2010 07:38
  • 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();
    }
    
    
    Donnerstag, 9. September 2010 07:49
  • 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);
        }
      }
    }

    Donnerstag, 9. September 2010 12:11
  • Kann mir keiner mehr helfen ? Möchte Zeile für Zeile der Txt auslesen und in einzelne Textboxen einlesen !
    Donnerstag, 9. September 2010 17:52
  • 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.

     

    Donnerstag, 9. September 2010 18:29
    Beantworter