พึ่งเคยใช้งานครั้งแรกโปรดอ่านที่นี่! howtouse!
x
  • Register
หางานด้าน IT อยู่เหรอ?

[C#] วิธีการอ่านไฟล์ที่บรรทัดที่เรากำหนดไว้

0 votes
มีวิธีอ่านไฟล์จากบรรทัดที่เราต้องการ โดยไม่ใช้วิธีอ่านทั้งไฟล์ไปเก็บไว้ใน string ก่อนหรือป่าวอะครับ (ไม่ใช้แบบ String[] data = File.ReadAllLines(...) อะครับ)
ถามเมื่อ Dec 6, 2012 in C# โดย Suthum Thitiananpako (251 คะแนน)
   

1 Answer

+1 vote

ถ้าใช้ regex sk แพลตเทิ้ลหาก็ได้อยู่ อย่างเช่น
Line1_:ข้อความ1
Line2_:ข้อความ2



foreach (string s in sentences) //sentences คือประโยค คำหรือไฟล์ทั้งหมด

        {
            if (System.Text.RegularExpressions.Regex.IsMatch(s, "Line(, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
            {
                System.Console.WriteLine("  (match for '{0}' found)", "Line[0-9]_:(.+)$");
            }
            else
            {
                System.Console.WriteLine();
            }
        }

ตรง Line[0-9]_:(.+)$ อาจจะกำหนดบรรทัดโดยเปลื่ยนตรง [0-9] เป็นบรรทัดที่ต้องการ
ตอบเมื่อ Dec 10, 2012 โดย sureV (156 คะแนน)
ตรง foreach มันขึ้นเตือนว่า cannot convert type char to string อะครับ
ถ้าเขียนเป็น for แทนจะใช้ประมาณไหนได้เหรอครับ (เผื่อได้)
ปล.ผมเขียนใน microsoft visual c# 2010 express edition
แสดงว่า sentences ของคุณเป็นตัวแปรชนิด char ให้เปลื่ยนชนิดตัวแปร sentences หรือจะเปลื่ยนเป็น foreach (char s in sentences) แต่จะเช็คอะไรได้ ถ้าเป็นตัวแปรอักษรตัวเดียว?
ใช้ for ก็ได้ครับ แต่ถ้าเอาจริงๆ แบบนี้โปรแกรมจะทำงานเร็วกว่า ถ้าจะหาเป็นลูป

ลองเปลื่ยนเป็รแบบนี้แทนก็ได้ครับ

using( Stream stream = File.Open(fileName, FileMode.Open) )
{
    stream.Seek(bytesPerLine * (myLine - 1), SeekOrigin.Begin);
    using( StreamReader reader = new StreamReader(stream) )
    {
        string line = reader.ReadLine();
    }
}

Related questions

0 votes
0 คำตอบ
263 views ถามเมื่อ Dec 9, 2015 in C# โดย Jidrid (102 คะแนน)
0 votes
2 คำตอบ
373 views ถามเมื่อ Sep 22, 2012 in C# โดย mix5003 (715 คะแนน)
0 votes
0 คำตอบ
...