cuốn sách gpt4 ai đã làm

c# - 如何检测文件是否有 Unix 换行符 (\n) 或 Windows 换行符 (\r\n)?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 12:48:53 28 4
mua khóa gpt4 Nike

Tôi đang thay đổi tệp qua FileStream (đó là tệp rất lớn và tôi chỉ cần thay đổi tiêu đề mà không cần ghi lại toàn bộ tệp.

Tệp có thể có dòng mới Unix hoặc Windows và điều quan trọng là tôi phải biết dòng mới nào để có thể ghi lại dòng mới chính xác vào tệp khi cập nhật.

Tôi có thể viết một hàm đơn giản để đọc tệp trong một khối bằng FileStream và kiểm tra dòng mới.

Nhưng vấn đề này chắc hẳn đã được giải quyết trước đó, nếu không phải ở C# thì là ở Win32 API?

Cách hiệu quả nhất để phát hiện các mẫu ngắt dòng trong một tệp là gì?

câu trả lời hay nhất

Cảm ơn lời đề nghị của mọi người. Tôi rất ngạc nhiên khi không tìm thấy thứ gì đó có thể tái sử dụng dễ dàng, vì vậy tôi đã tạo một hàm đơn giản mà tôi đưa vào đây. Lưu ý rằng nó chỉ tìm ký tự dòng mới đầu tiên (\n hoặc \r\n) và trả về nó dưới dạng khớp. Đủ cho nhu cầu của tôi, nhưng có lẽ không đủ mạnh.

    bool công khai TryDetectNewLine(đường dẫn chuỗi, chuỗi ra newLine)
{
sử dụng (var fileStream = File.OpenRead(path))
{
char prevChar = '\0';

// Đọc 4000 ký tự đầu tiên để thử tìm dòng mới
cho (int i = 0; i < 4000; i++)
{
int b;
if ((b = fileStream.ReadByte()) == -1) break;

char curChar = (char)b;

nếu (curChar == '\n')
{
newLine = prevChar == '\r' ? "\r\n" : "\n";
trả về đúng sự thật;
}

prevChar = curChar;
}

// Trả về sai có nghĩa là không thể xác định quy ước nguồn cấp dữ liệu
newLine = Môi trường.NewLine;
trả về sai;
}
}

Giới thiệu về c# - Làm cách nào để phát hiện xem tệp có ký tự dòng mới Unix (\ n) hay ký tự dòng mới của Windows (\ r\n)? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11829559/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress