Đọc dữ liệu từ file Text bằng Visual C# - Hỗ trợ dự án ghi Log

I. Giới thiệu

Ở bài hôm trước, mình có nói cách ghi dữ liệu vào file Text trong Visual C# - cho dự án lưu log. Vậy đã ghi rồi, làm thế nào để đọc??? Bài hôm nay, mình sẽ hướng dẫn cách đọc dữ liệu từ file Text thông qua Visual C# nhé!!!

II. Lớp StreamReader trong C# 

Tương tự như bài trước, để viết dữ liệu vô Text dùng lớp StreamWriter thì ở đây ta dùng StreamReader để đọc dữ liệu trong C#. Lớp StreamReader kế thừa từ lớp abstract cơ sở là TextReader mà biểu diễn một reader để đọc một dãy ký tự. Bảng sau miêu tả một số phương thức được sử dụng phổ biến của lớp StreamReader trong C#:

 

1 public override void Close()

Nó đóng đối tượng StreamReader và Underlying Stream, và giải phóng bất kỳ nguồn hệ thống nào được liên kết với Reader đó

2 public override int Peek()

Trả về ký tự có sẵn tiếp theo nhưng không hủy nó

3 public override int Read()

Đọc ký tự tiếp theo từ Input Stream và tăng vị trí ký tự thêm 1

Để có danh sách đầy đủ các phương thức trong lớp StreamWriter, bạn tham khảo Microsoft Documentation về C#.

III. Tiến hành thôi

Ở bài này, mình cũng làm việc với Console Application...Đã thực hiện Console Application thì Winform quá đơn giản rồi, hihe. 

Để đọc dữ liệu ta có 2 cách: 

C1: Sử dụng StreamReader
FileStream fs = new FileStream(filepath, FileMode.Open);
StreamReader rd = new StreamReader(fs, Encoding.Unicode);

C2: đọc trực tiếp sử dụng lớp File

string[] lines = File.ReadAllLines(filepath);

 

Code mẫu:

C1:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;//Sử dụng thư viện này để làm việc với Stream

namespace ReadText
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream fs = new FileStream("E:\\test.txt", FileMode.Open);
            StreamReader rd = new StreamReader(fs, Encoding.UTF8);
            String giatri = rd.ReadToEnd();// ReadLine() chỉ đọc 1 dòng đầu thoy, ReadToEnd là đọc hết
            Console.WriteLine(giatri);
            rd.Close();
            Console.ReadLine();
        }
    }
}

C2:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;//Sử dụng thư viện này để làm việc với Stream

namespace ReadText
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] lines = File.ReadAllLines(@"E:\test.txt");
            foreach (string s in lines)
            {
                Console.WriteLine(s);
            }
            Console.ReadLine();
        }
    }
}

Thành quả:

IV. Lời kết

Như vậy, với bài này, các bạn có thể đọc các dữ liệu trong Text phục vụ các dự án ghi log với Arduino. Chúc các bạn thành công!!!

 

lên
20 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Tự động chạy chương trình cho raspberry khi khởi động

Khi viết chương trình với raspberry pi, mình thường thắc mắc : làm thế nào để raspberry pi có thể chạy được chương trình...có sẵn trong bộ nhớ, nhưng không có bàn phím, màn hình,... để tương tác với raspberry pi, thì làm sao mà chạy nó cho project được? Vì thế, mình đã tìm kiếm trên mạng, và biết được raspberry pi có một cách để giải quyết vấn đề đó: "Auto Run programming on Boot" Đó chính là: Tự động chạy các chương trình cho raspberry pi khi khởi động. Hôm nay, mình sẽ chia sẻ cho các bạn phương pháp này.

lên
22 thành viên đã đánh giá bài viết này hữu ích.

Fix lỗi Putty không thể connect tới Raspberry Pi

Như các bạn đã biết Putty là một công cụ tiện dụng để sử dụng Raspberry Pi mà không cần màn hình bằng các câu lệnh Linux. Các bạn có thể xem bài viết của anh Raspi tại đây. Một ngày đẹp trời, các bạn lôi em Pi "iu dấu" ra vọc, dùng thử Putty để Remote Raspberry Pi thông qua SSH và..."What the...". Putty không thể connect tới Raspberry Pi với dòng thông báo lỗi: Connection Refused!!!. Vậy làm sao để fix nó???? Đừng lo lắng, hãy đọc hết bài viết này của mình nhé wink

lên
10 thành viên đã đánh giá bài viết này hữu ích.