DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 306777 - Geändert am: Sonntag, 14. Juli 2013 - Version: 4.0

 
Dieser Artikel wurde zuvor veröffentlicht unter D306777
Eine Microsoft Visual Basic .NET-Version dieses Artikels finden Sie unter 302309  (http://support.microsoft.com/kb/302309/ ) .

Dieser Artikel bezieht sich auf folgende Microsoft.NET Framework Class Library-Namespaces:
  • System.IO
  • System.Collections

Auf dieser Seite

Zusammenfassung

In diesem Artikel wird veranschaulicht, wie Abrufen von Informationen aus einer Textdatei (.txt), und klicken Sie dann eine ArrayList -Klasse verwenden, um diese Informationen für den Benutzer anzuzeigen.

Anforderungen

Microsoft Visual C#

Einlesen von Textdateien in Visual C#

Öffnen und Lesen von Dateien für den Lesezugriff ist ein wichtiger Bestandteil der Eingabe/Ausgabe (e/a)-Funktionalität, selbst wenn Sie nicht benötigen, um die betreffende Datei zu schreiben. In diesem Beispiel öffnet eine Datei zum Lesen, die für das Lesen von Textdateien nützlich, aber für Binärdateien nicht geeignet ist. Dieses Beispiel verwendet eine der zahlreichen Methoden, die zum Öffnen der Datei verfügbar sind.

Zwar viele Datenstrukturen zur Verfügung, um Informationen zu speichern, die aus der Datei abgerufen werden, ist eine ArrayList -Klasse die einfachste Struktur verwenden. Dieses Beispiel verwendet zum Öffnen, und aus der Datei lesen, Objekte aus dem System.IO -Namespace, nämlich die Klasse System.IO.StreamReader .

Hinweis Dieses Beispiel erfordert eine Form von Textdatei (.txt), aus der gelesen werden soll.

Zum Laden und Lesen einer Textdatei von Visual C#, gehen Sie folgendermaßen vor:
  1. Starten Sie Microsoft Visual Studio.
  2. Erstellen Sie eine neue Konsolenanwendung in Visual C#. Visual Studio erstellt eine Statische Klasse , zusammen mit einer leeren Main()-Prozedur .
  3. Stellen Sie sicher, dass das Projekt mindestens den System -Namespace verweist. Verwenden Sie die using -Anweisung auf dem System, System.IOund System.Collections -Namespaces, sodass es nicht erforderlich ist, um die Deklarationen aus diesen Namespaces später im Code vornehmen müssen. Sie müssen diese Anweisungen vor allen anderen Deklarationen verwenden.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. Öffnen Sie eine Datei zum Lesen, erstellen eine neue Instanz eines StreamReader -Objekts, und Pfad der Datei wie folgt an den Konstruktor übergeben:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. Benötigen Sie eine Zeichenfolgenvariable in dem jede Zeile der Datei gespeichert werden kann. Da Sie diese Zeilen zu einer ArrayListhinzufügen, deklarieren Sie und erstellen Sie ein Objekt dieses Typs auch.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. Es gibt mehrere Möglichkeiten, die Datei, einschließlich der ReadToEnd -Methode, die den Text in die gesamte Datei auf einmal zu lesen. Jedoch in diesem Beispiel können die ReadLine -Methode Sie die Datei zeilenweise einliest. Wenn das Ende der Datei erreicht ist, gibt diese Methode eine Null, die es für Sie zum Beenden der Schleife ermöglicht. Während Sie jede Zeile aus der Datei lesen, können Sie die Add -Methode der ArrayList , die ArrayList -Klasse die Zeilen einzufügen.
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. Verwenden Sie eine For Each -Schleife, um den Inhalt Ihrer neu gefüllten ArrayList wie folgt in der Konsole ausgegeben:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. Speichern Sie, und führen Sie den Code, der eine Liste Ihrer Datei in der Konsole erzeugt.

Vollständige Codeauflistung

using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
	/// <summary>
	/// Summary description for Class1.
	/// </summary>
	class Class1
	{
		static void Main(string[] args)
		{
			StreamReader objReader = new StreamReader("c:\\test.txt");
			string sLine="";
			ArrayList arrText = new ArrayList();

			while (sLine != null)
			{
				sLine = objReader.ReadLine();
				if (sLine != null)
					arrText.Add(sLine);
			}
                        objReader.Close();

			foreach (string sOutput in arrText)
				Console.WriteLine(sOutput);
			Console.ReadLine();
		}
	}
}
				

Problembehandlung

Es gibt mehrere Dinge, achten Sie beim Arbeiten mit Datei-e/a, einschließlich der folgenden Elemente:
  • Jedes Mal, wenn Sie Zugriff auf eine Datei besteht die Möglichkeit, dass die Datei, die Sie lesen oder schreiben möchten möglicherweise nicht auf dem System oder verwendet werden kann.
  • In diesem Beispiel liest die gesamte Datei in den Speicher, bevor die Datei verarbeitet. Treten möglicherweise eine Situation, in der die Datei im Speicher gehalten werden zu groß ist, oder Sie haben keine Berechtigungen auf die Datei zugreifen.
Eine dieser Situationen wird eine Ausnahme ausgelöst wird. Es ist immer empfohlen, einen try...catch -Block, um diese Probleme zu behandeln.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
Keywords: 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 306777  (http://support.microsoft.com/kb/306777/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: