Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail Teks Besar Tanpa Menggunakan Tatasusunan Rentetan?

Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail Teks Besar Tanpa Menggunakan Tatasusunan Rentetan?

Susan Sarandon
Susan Sarandonasal
2025-01-15 09:21:50933semak imbas

How Can I Efficiently Read Specific Lines from a Large Text File Without Using String Arrays?

Bacaan terpilih mengikut baris bagi fail teks besar

Soalan:

Bagaimana untuk membaca dan menyimpan baris tertentu daripada fail teks besar tanpa menggunakan tatasusunan rentetan?

Latar belakang:

Fail teks yang disediakan mempunyai format berstruktur: 25 baris pertama mengandungi maklumat, diikuti dengan bilangan baris yang berubah-ubah (nombor ditentukan oleh nilai baris 17). Matlamatnya adalah untuk mengekstrak dan menyimpan 25 baris pertama daripada fail sebagai nilai bebas dan menyimpan baris berikutnya sebagai tatasusunan.

Penyelesaian:

Kaedah .NET 4.0:

Jika menggunakan .NET 4.0 atau lebih tinggi, kaedah ReadLines boleh mengakses baris secara terus. Untuk membaca baris 15:

<code class="language-csharp">string line = File.ReadLines(FileName).Skip(14).Take(1).First();</code>

Kaedah am:

Untuk versi .NET yang lebih awal atau jika bacaan berurutan baris tidak dapat dielakkan:

<code class="language-csharp">string GetLine(string fileName, int line)
{
   using (var sr = new StreamReader(fileName))
   {
       for (int i = 1; i <= line; i++)
       {
           if (sr.ReadLine() == null) return null; // 处理文件结尾
           if (i == line) return sr.ReadLine();
       }
       return null;
   }
}</code>

Kaedah ini membaca semua baris sebelum garis sasaran.

Nota:

Biasanya tidak boleh diandaikan bahawa n baris pertama boleh dipadamkan tanpa membaca semula dan menulis semula fail. Walau bagaimanapun, penyelesaian yang disediakan di sini tidak memerlukan baris untuk dipadamkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Baris Khusus dengan Cekap daripada Fail Teks Besar Tanpa Menggunakan Tatasusunan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn