כיצד לקרוא קובץ טקסט על-ידי שימוש System.IO ו- Visual C#

תרגומי מאמרים תרגומי מאמרים
Article ID: 306777 - View products that this article applies to.
עבור Microsoft Visual Basic .NET גירסה של מאמר זה, ראה 302309.

מאמר זה מתייחס מרחבי שמות של ספריית המחלקות של Microsoft .NET Framework הבאות:
  • System.IO
  • System.Collections
הרחב הכל | כווץ הכל

On This Page

תקציר

מאמר זה מראה לך כיצד לאחזר מידע מקובץ טקסט (. txt) ולאחר מכן השתמש במחלקת ArrayList כדי להציג מידע זה למשתמש.

דרישות

Microsoft Visual C#

קריאת קבצי טקסט ב- Visual C#

פתיחת קריאת קבצים עבור גישת קריאה הוא חלק חשוב פונקציונליות קלט/פלט (IO), גם אם אין צורך לכתוב הקובץ הנדון. דוגמה זו פותח קובץ לקריאה, הוא שימושי עבור קריאת קבצי טקסט אך לא הולם עבור קבצים בינאריים. דוגמה זו משתמשת באחת מהשיטות רבות הזמינות עבור פתיחת הקובץ.

למרות מבני נתונים רבים זמינים לאחסן מידע מאוחזר מקובץ, מחלקת ArrayList היא המבנה הקלה ביותר לשימוש. כדי לפתוח ולקרוא מקובץ, דוגמה זו משתמשת אובייקטים ממרחב השמות System.IO , המחלקה System.IO.StreamReader במיוחד.

הערה הדוגמה דורשת צורה כלשהי של קובץ טקסט (. txt) שניתן לקרוא ממנו.

כדי לטעון לקרוא קובץ טקסט מתוך Visual C#, בצע את הפעולות הבאות:
  1. הפעל את Microsoft Visual Studio.
  2. יצירה של יישום מסוף חדש ב- Visual C#. Visual Studio יוצר מחלקה סטטית , יחד עם פרוצדורה Main() ריקה.
  3. ודא כי הפרוייקט מפנה לפחות את מרחב השמות של המערכת . כך אינך נדרש לאשר הצהרות מתוך טווחי שמות אלה בקוד שלך, השתמש במשפט באמצעות על טווח השמות של המערכת, System.IOו- System.Collections . עליך להשתמש הצהרות אלה לפני הצהרות אחרות.
    using System;
    using System.IO;
    using System.Collections;
    					
  4. כדי לפתוח את הקובץ לקריאה, ליצור מופע חדש של אובייקט StreamReader , ולהעביר הנתיב של הקובץ לתוך הבנאי כדלקמן:
    StreamReader objReader = new StreamReader("c:\\test.txt");
    					
  5. עליך להיות בעל כמשתנה מחרוזת לאחסון כל שורה של הקובץ עיבוד. מאחר תוסיף שורות אלה ArrayList, להצהיר על ויצירת אובייקט מסוג זה, גם.
    string sLine="";
    ArrayList arrText = new ArrayList();
    					
  6. קיימות מספר דרכים כדי לקרוא את הקובץ, כולל את פעולת השירות ReadToEnd קורא את הקובץ כולו בבת אחת. עם זאת, עבור דוגמה זו, באפשרותך להשתמש בשיטה ReadLine כדי להביא בשורה קובץ אחד בכל פעם. כאשר תגיע לסוף הקובץ, שיטה זו מחזירה ערך null, אשר מספק לך דרך לסיים את הלולאה. בעת קריאת כל שורה מקובץ, באפשרותך להשתמש של השיטה Add של ArrayList כדי להוסיף השורות לתוך מחלקה ArrayList שלך.
    while (sLine != null)
    {
    	sLine = objReader.ReadLine();
    	if (sLine != null)
    		arrText.Add(sLine);
    }
    objReader.Close();
    					
  7. השתמש עבור כל לולאה כדי לכתוב את התוכן שלך עם מילוי לאחרונה ArrayList למסוף כדלקמן:
    foreach (string sOutput in arrText)
    	Console.WriteLine(sOutput);
    Console.ReadLine();
    					
  8. לשמור ולהפעיל את הקוד, אשר מייצר רישום של הקובץ שלך למסוף.

רישום קוד מלא

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();
		}
	}
}
				

פתרון בעיות

ישנם מספר דברים שיש לזכור בעת עבודה עם קובץ קלט/פלט, כולל את הפריטים הבאים:
  • בכל פעם גישה לקובץ, קיימת אפשרות הקובץ שאותו אתה מנסה לקרוא או לכתוב לא ייתכן במערכת או שהוא נמצא בשימוש.
  • דוגמה זו קוראת את הקובץ בשלמותו לזיכרון לפני שהוא מעבד את הקובץ. ייתכן שתיתקל במצב שבו הקובץ גדול מדי להחזקה בזיכרון, או שאין לך הרשאות גישה לקובץ.
כל אחד ממצבים אלה לגרום חריג להיות מופעל. מומלץ תמיד לספק בלוק ... נסה תפיסת לטיפול בבעיות נפוצות אלה.

מאפיינים

Article ID: 306777 - Last Review: יום שישי 07 יוני 2013 - Revision: 1.0
המידע במאמר זה חל על:
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
מילות מפתח 
kbcollections kbhowtomaster kbio kbmt KB306777 KbMthe
תרגום מכונה
חשוב: מאמר זה תורגם באמצעות תוכנת תרגום מכונה של Microsoft וייתכן שנערך לאחר מכן על-ידי קהילת Microsoftבאמצעות טכנולוגייתCommunity Translation Framework (CTF) או באמצעות תרגום אנושי. Microsoft מציעה לך גם מאמרים בתרגום אנושי, מאמרים בתרגום מכונה ומאמרים שנערכו על ידי הקהילה כדי לאפשר גישה למאמרים הקיימים במאגר הידע (Knowledge Base) שלMicrosoft בשפות שונות. מאמרים מתורגמים יכולים להכיל שגיאות באוצר המילים, בתחביר או בדקדוק. Microsoft אינה אחראית לחוסר דיוק, שגיאות או נזקים שייגרמו כתוצאה מטעויות בתכנים או משימוש בתכנים על ידי לקוחותיה.
כותרת מאמר זה באנגלית: 306777

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com