Khi Save As . . . thì tập tin bé lại, ?

  • Thread starter HongViet
  • Ngày gửi
HongViet

HongViet

Cao cấp
10/11/05
286
10
18
Đà nẵng
Tôi có một tập tin Excel 280.064 bytes; khi Save As nó với tên khác để lưu thì thấy tập tin mới chỉ còn 279.552 bytetho6iss. Như vậy nó là sao, các bạn?!:dzo:
 
Khóa học Quản trị dòng tiền
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
HongViet nói:
Tôi có một tập tin Excel 280.064 bytes; khi Save As nó với tên khác để lưu thì thấy tập tin mới chỉ còn 279.552 byte thôi. Như vậy nó là sao, các bạn?!:dzo:
Đây là vấn đề không phải của riêng Excel mà đối với tất cả các tập tin, các ứng dụng của Windows khi ghi dữ liệu trên đĩa định dạng FAT32.
Vấn đề này phải dân chuyên IT mới hiểu, tớ chỉ hiểu nôm na thế này: Ổ đĩa được chia thành nhiều đơn vị lưu trữ nhỏ. Khi ghi tập tin, chương trình sẽ dò trên bảng FAT của đĩa xem địa chỉ nào còn trống và ghi vào đó, nếu chưa đủ, sẽ ghi tiếp ở chỗ khác. Nếu những vùng lưu trữ thông tin của file trên đĩa không liền nhau (dữ liệu phân mảnh) thì dẩn đến tình trạng lảng phí (một số cluster mặc dù chưa ghi dữ liệu nhưng FAT vẫn tính vào kích thước của file) do đó kích thước của tập tin sẽ tăng lên.
 
T

Tuanktcdcn

Lão già ham vui
18/6/04
549
52
28
47
Hà Nội
www.bluesofts.net
adam_tran nói:
Đây là vấn đề không phải của riêng Excel mà đối với tất cả các tập tin, các ứng dụng của Windows khi ghi dữ liệu trên đĩa định dạng FAT32.
Vấn đề này phải dân chuyên IT mới hiểu, tớ chỉ hiểu nôm na thế này: Ổ đĩa được chia thành nhiều đơn vị lưu trữ nhỏ. Khi ghi tập tin, chương trình sẽ dò trên bảng FAT của đĩa xem địa chỉ nào còn trống và ghi vào đó, nếu chưa đủ, sẽ ghi tiếp ở chỗ khác. Nếu những vùng lưu trữ thông tin của file trên đĩa không liền nhau (dữ liệu phân mảnh) thì dẩn đến tình trạng lảng phí (một số cluster mặc dù chưa ghi dữ liệu nhưng FAT vẫn tính vào kích thước của file) do đó kích thước của tập tin sẽ tăng lên.

Hehe! Bác adam_tran nói như IT rồi! Nhưng mình không nghĩ vậy trong trường hợp của bạn HongViet.

Khi chọn "Save as" EXCEL tổ chức lại cấu trúc file CSDL vào file mới, sau đó ghi các thông tin của file hiện thời vào file mới. Việc ghi lại các thông tin được EXCEL chọn lựa cái gì chọn để ghi còn cái nào cần bỏ. Chính vì vậy, file được tạo ra từ "Save as" dung lượng bao giờ cũng <= file cũ.
Khi chọn "Save as" cũng cho phép bạn chọn save theo version nào của EXCEL, sự khác nhau về version cũng là lý do dung lượng giữa các file khác nhau.
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
Tuanktcdcn nói:
Hehe! Bác adam_tran nói như IT rồi! Nhưng mình không nghĩ vậy trong trường hợp của bạn HongViet.
Cái này em "suy ra" khi làm Flash. Số là em làm 1 file Flash trong đó include 3 file mp3, do đó, size của nó lên tới 12MB. Sau đó, em xóa các bản nhạc này đi nhưng size vẫn không hề giảm. Em Save As, cũng không giảm. Chỉ khi Save As với 1 cái tên khác vào 1 thư mục khác thì nó giảm còn 500Kb. Tại sao... thì hiểu như vậy cũng thỏa mãn rồi. :food-smil
 
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,032
125
63
50
Hà nội
vnuni.net
Hi friends,
Bản chất của hiện tượng:

Vì lúc đầu tuy có xóa resources đi nhưng nó chưa thực sự xóa hẳn ra khỏi file (mà chỉ xóa mang tính chất logical thôi, còn physical thì vẫn còn nguyên si). Vì thế mà file MDB mới có chức năng compact. Ở VB cũng vậy, trên các form (thực chất trong windows programing thì gọi là window) nếu ta cứ cho use 1 resource (như Picture, Icon, Cursors, v.v...) vào form rồi sau đó remove cái resource đó đi và cứ làm đi làm lại như thế thì file frx (file này chứa resources - nếu ai hiểu windows programming thì biết resources của windows là gì) sẽ tự nhiên tăng to đùng. Và khi compile ra exe thì mọi người thấy file exe của VB là rất to (vì nó ko compress cái un-used resources). Chính vì thế mà tớ hay dùng những công cụ nén những file excutable, dlls,... nên các ứng dụng tuy viết bằng VB (original VB compiled khoảng 2-4Mb) có kích cỡ chỉ còn ~400kbs thôi (Tốc độ chạy, memory & cpu uses gần như ko thay đổi so với original file). (Công cụ này áp dụng cho mọi output của các trình compiler - kể cả .NET)

Hope that helps!
 

Xem nhiều

Webketoan Zalo OA