PDA

View Full Version : Bài tập về xử lý file-tệp trong lập trình C



Xcross87
10-11-2006, 03:45 PM
Còn đây là luyện tay về xử lý với file

1. Viết hàm ghi tiêp một file vào một file khác
2. Viết hàm đọc một file có độ dài hàng khác nhau sau đó convert file đó sao cho mỗi dòng có 60 kí tự
3. Viết hàm đọc 1 file và tính giá trị trung bình số lượng các kí tự trên 1 dòng
4. Viết hàm xóa đi dòng cuối cùng của một file bất kì
5. Viết hàm xóa đi các dòng trống ( dòng chỉ có kí tự \n )
6. Viết chương trình in code của chính nó ra màn hình
7. Viết chương trình chèn một dòng trống sau dòng thứ 7 của 1 file
8. Viết chương trình xóa dòng thứ 6 của một file ( xóa cả kí tự \n )
9. Viết chương trình chèn giữa các dòng một dòng trống ( double-spaced )
10. Viết chương trình nhân bản dòng thứ 4 của 1 file và chèn vào các dòng có số thứ tự chia hết cho 4
11. Viết chương trình xóa 2 kí tự đầu tiên của mỗi dòng trong 1 file ( xóa cả kí tự ' ' );
12. Viết chương trình chèn thêm 2 kí tự trống vào đầu mỗi dòng của 1 file
13. Viết chương trình đọc 1 file sau đó ở mỗi dòng lấy ra các kí tự thứ 21 và ghi vào môt file khác. Nếu dòng có ít hơn 21 kí tự thì lấy kí tự cuôi ( ko tính \n ) nếu là kí tự trống thì thôi . Khi nào đến cuối file thì ghi thêm kí tự \n vào file được ghi và đóng lại
14. Viết chương trình ghi các số nguyên tố có tổng các chữ số chia hết cho 2 vào một file ( giới hạn số từ 2 -> n _ với n nhập từ bàn phím )

Ai có ý kiến hay cùng thảo luận !!

TQN
10-11-2006, 06:21 PM
Tui xin có thêm một bài tập nữa, có ứng dụng thực tế cho các cậu:
Viết 1 ct có nhiệm vụ:
- Mở 1 file, xác định file đó là file text, hay file binary. Binary báo lỗi, thoát
- Nếu file text thì ANSI hay UNICODE. UNICODE báo lỗi, thoát.
- Xác định EOL character: CR (Unix), LF (Mac), hay CRLF, convert EOL character to CRLF (của DOS và Windows), nhận option từ command line, vd: -c
- Trim right tất cả các line, option nhận từ command line: -t
- Convert tab to space, số space nhận từ command line, vd: -p4
- Cho phép xử lý wildcard, nhận option từ command line, vd: *.cpp
- Cho phép xử lý file read-only, hidden file, nhận option từ command line, vd: -r, -h
- Cho phép recursive qua các thư mục con, option -s
- Tạo backup file, option -b
- Quiet mode, option -q
VD: TrimTxt.exe test*.asm /s /r /h /p4 /c
Trim right tất cả các line trong file test*.asm, recursive, cho phép xử lý file readonly và hidden, 1tab = 4space, convert CR/LF EOF character to CRLF character.
Thấy đơn giản nhưng không dể ăn đâu đấy.
Viết xong tool này, giữ lấy, từ từ các bạn sẽ thấy hiệu ích của nó.

shinichi_haha
10-11-2006, 07:40 PM
Viết chương trình tự động copy code của chính nó vào các file khác ==>virus????

Xcross87
11-11-2006, 08:51 AM
@shinichi : in code cua chinh no ra screen thoi . Chứ cái loại như trên gọi là duplicate thường được áp dụng cho virus

* Mấy bài của anh TQN hay quá nhưng mà em chưa biết xử lý cái loại file mà liên kết với command line thế nào ?

* Anh cho một vài ví dụ về kiểm làm việc với command line đi ^o^

PoPoPoPo
11-11-2006, 11:17 AM
Các bài của anh TQN làm trong C/C++ là hơi khó. Trong C# , VC thì dễ hơn.
còn về thao tác trên các File thì mình bổ sung mấy cái đơn giản này nhé:
1-Đổi tên file
2-Loại bỏ File
3-Thiết lập thuộc tính cho File (Hidden, Readonly, AR)
4-Đếm số từ trong File
5-Đếm tần số xuất hiện 1 từ trong File
6-Mã hóa File
7-Giải mã File
HEHE

Xcross87
11-11-2006, 11:31 AM
6-7 của Popo là Cryptography ?o?

PoPoPoPo
11-11-2006, 11:35 AM
Đúng vậy, nhưng chúng ta hoàn toàn có thể làm được mà.
Chúng ta có thể đưa ra một khóa đơn giản , rồi mã hóa theo khóa đó, đồng thời có thể dùng khóa đó để giải mã.
Thế thôi.
Nếu đưa ra thuật toán mã hóa phức tạp hơn như RSA cũng đươc.
Thông thường làm theo mã Xi-clic là hay rồi.

Xcross87
11-11-2006, 07:33 PM
Bài 1 :



void append()
{
char c;
FILE* file1;
FILE* file2;

file1 = fopen("data1.txt","r");
if (!file1) { printf("\n Error opening ... "); getch(); exit(100); }
file2 = fopen("data2.txt","a");

while ( ( c = fgetc(file1) ) != EOF )
{
fputc(c,file2);
}

fclose(file1);fclose(file2);
return;
}

thoxingg
14-11-2012, 04:36 PM
cho e xin ít tài liệu về xử lý file của C, bằng tiếng việt nha mấy pro. Vậy e mới luyện được mấy bài này chứ