Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menambahkan pada fail sebelum rentetan tertentu dalam pergi?

Bagaimana untuk menambahkan pada fail sebelum rentetan tertentu dalam pergi?

王林
王林ke hadapan
2024-02-05 21:15:08482semak imbas

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
  ]
}

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
  ]
}

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)
    }
}

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam