Rất tiếc, tệp không hỗ trợ chèn văn bản vào giữa tệp
.
Nếu tệp nhỏ, chẳng hạn như dưới 50 MB, có lẽ cách dễ nhất
thực hiện là thực hiện sáu bước.
- mở tệp để đọc;
- sử dụng readlines[] để đọc từng dòng một trong danh sách;
- đóng tệp;
- nối vào dòng thứ ba trong danh sách;
- mở lại tệp để ghi;
- viết các dòng đã sửa đổi trong danh sách trở lại tệp
Như vậy đã đủ gợi ý chưa?
Ngoài ra, tôi phải thực hiện tác vụ này trên nhiều tệp cùng một lúc, các tệp được liệt kê trong kết quả tìm kiếm của studio trực quan sẽ giống như thế này
Find all "foo[", Subfolders, Find Results 1, "c:\", "*.txt"
C:\file1.txt[2]:a = foo[c]
C:\file1.txt[4]:b = foo[b]
C:\file1.txt[8]:c = foo[v]
C:\file2.txt[2]:a1 = foo[c]
C:\file2.txt[4]:a3 = foo[b]
C:\file2.txt[8]:variable1 = foo[v]
Matching lines: 6 Matching files: 2 Total files searched: 214
Find was stopped in progress.
Vì vậy, chúng tôi cần một cách để lấy tập hợp các tệp từ kết quả tìm kiếm của studio trực quan và sau đó chạy tác vụ trên từng tệp
Đây là thuật toán chính nơi
0 là dòng cần chèn, trong trường hợp này làa > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
1a > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
2 trong mẫu mà sau đó chúng tôi chèn dòng Trong trường hợp này,a > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
3 khớp vớia > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
4 chẳng hạna > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
5 là mẫu của các tệp chúng tôi đang tìm kiếm trong kết quả tìm kiếm của studio trực quana > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
Chức năng chính là
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
6________số 8Tạo một tập hợp các tệp từ kết quả tìm kiếm phòng thu trực quan
Đây là mã sẽ lấy tập hợp các tệp trong kết quả tìm kiếm. Trong đó
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
5 bằng với a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
8. Có nghĩa là bất kỳ tệp nào có phần mở rộng a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
9 có tên là bất kỳ ký tự từ nào Hàm
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
7 trả về một đối tượng tệp có hai phương thức hữu ích để ghi văn bản vào tệp. a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
20 và a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
21- Phương thức
20 ghi một chuỗi vào tệp văn bảna > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
- Phương thức
21 ghi danh sách các chuỗi vào một tệp cùng một lúca > b a = foo[c] a = bar[42] b = 2 b = foo[b] b = bar[42] foo bar foobar c = foo[v] c = bar[42]
Phương thức
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
21 chấp nhận một đối tượng có thể lặp lại, không chỉ một danh sách, vì vậy bạn có thể truyền một bộ chuỗi, một tập hợp các chuỗi, v.v. , đến phương thức a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
21Để ghi một dòng vào tệp văn bản, bạn cần thêm một ký tự dòng mới theo cách thủ công
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
8Viết ví dụ về tệp văn bản
Ví dụ sau đây cho thấy cách sử dụng hàm
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
20 để ghi danh sách văn bản vào tệp văn bảna > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
0Nếu bản đọc. txt không tồn tại, hàm
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
7 sẽ tạo một tệp mớiSau đây trình bày cách ghi danh sách các chuỗi văn bản vào tệp văn bản
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
1Nếu bạn coi mỗi phần tử của danh sách là một dòng, bạn cần nối nó với ký tự xuống dòng như thế này
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
2Nối tệp văn bản
Để nối thêm vào tệp văn bản, bạn cần mở tệp văn bản ở chế độ nối thêm. Ví dụ sau nối thêm các dòng mới vào tệp
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
88a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
4đầu ra
Ghi vào tệp văn bản UTF-8
Nếu bạn viết các ký tự UTF-8 vào tệp văn bản bằng mã từ các ví dụ trước, bạn sẽ gặp lỗi như thế này
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
5Để mở tệp và ghi các ký tự UTF-8 vào tệp, bạn cần truyền tham số
a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
89 cho hàm a > b
a = foo[c]
a = bar[42]
b = 2
b = foo[b]
b = bar[42]
foo
bar
foobar
c = foo[v]
c = bar[42]
7