Bagaimana untuk menambahkan pada fail sebelum rentetan tertentu dalam pergi?

王林
Lepaskan: 2024-02-05 21:15:08
ke hadapan
468 orang telah melayarinya

Bagaimana untuk menambahkan pada fail sebelum rentetan tertentu dalam pergi?

Kandungan soalan

Saya mempunyai fail yang bermula dengan struktur ini:

locals {
  my_list = [
    "a",
    "b",
    "c",
    "d"
    //add more text before this
  ]
}
Salin selepas log masuk

Saya mahu menambah teks "e" sebelum "//Tambah lagi teks sebelum ini" dan "," selepas "d", jadi ia akan kelihatan seperti ini:

locals {
  MY_LIST = [
    "a",
    "b",
    "c",
    "d",
    "e"
    //add more text before this
  ]
}
Salin selepas log masuk

Bagaimana saya boleh melaksanakan ini secara dinamik supaya saya boleh menambah lebih banyak rentetan pada fail pada masa hadapan?

Terima kasih


Jawapan betul


Untuk menambah teks "e" sebelum baris bermula dengan "//" anda boleh melakukan perkara berikut.

  1. Buka fail dalam mod baca/tulis.
  2. Buat pengimbas daripada fail dan imbas setiap baris ke dalam memori.
  3. Periksa setiap baris semasa mengimbas untuk melihat sama ada ia menemui baris yang mengandungi "//".
  4. Simpan setiap baris dalam tatasusunan supaya anda boleh menulisnya kembali ke fail kemudian.
  5. Jika baris ditemui, tambahkan baris baharu "e" dan kemas kini baris sebelumnya.
  6. Tulis baris ini kembali ke fail.
func main() {
    f, err := os.OpenFile("locals.txt", os.O_RDWR, 0644)
    if err != nil {
        log.Fatal(err)
    }

    scanner := bufio.NewScanner(f)
    lines := []string{}
    for scanner.Scan() {
        ln := scanner.Text()
        if strings.Contains(ln, "//") {
            index := len(lines) - 1
            updated := fmt.Sprintf("%s,", lines[index])
            lines[index] = updated
            lines = append(lines, "    \"e\"", ln)
            continue
        }
        lines = append(lines, ln)
    }

    content := strings.Join(lines, "\n")
    _, err = f.WriteAt([]byte(content), 0)
    if err != nil {
        log.Fatal(err)
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk menambahkan pada fail sebelum rentetan tertentu dalam pergi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan