Share zip unzip c++ source code

ngoanooooooo

New member
## Mã nguồn C ++ mã C ++

** Zip và giải nén là gì? **

Zip và Unzip là hai thuật toán nén và giải nén tệp.ZIP là một thuật toán nén không mất mát giúp giảm kích thước của một tệp bằng cách xóa dữ liệu dự phòng.Unzip là trái ngược với zip và nó khôi phục một tệp nén về dạng ban đầu của nó.

** Mã nguồn C ++ ZIP và Giải nén **

Sau đây là mã nguồn C ++ cho zip và giải nén:

`` `C ++
#include <Istream>
#include <Fstream>
#include <String>
#include <Vector>

sử dụng không gian tên STD;

// Xác định mức nén
const int nén_level = 9;

// Xác định chức năng để nén một tệp
void CompressFile (Const String & InputFile, Const String & OutputFile) {
// Tạo luồng đầu ra cho tệp nén
Ofstream out (outputfile, iOS :: nhị phân);

// Tạo luồng đầu vào cho tệp gốc
ifstream in (inputfile, iOS :: nhị phân);

// Tạo bộ đệm để lưu trữ dữ liệu từ tệp gốc
bộ đệm char [1024];

// Đọc dữ liệu từ tệp gốc và nén nó
while (in.read (bộ đệm, sizeof (bộ đệm))) {
// nén dữ liệu
vector <par> néndata = nén (bộ đệm, in.gcount ());

// Viết dữ liệu nén vào tệp đầu ra
out.write ((char*) & néndata [0], néndata.size ());
}

// Đóng các luồng đầu vào và đầu ra
ghim theo();
out.close ();
}

// Xác định chức năng để giải nén một tệp
void unzipfile (const String & inputFile, const String & outputFile) {
// Tạo luồng đầu vào cho tệp nén
ifstream in (inputfile, iOS :: nhị phân);

// Tạo luồng đầu ra cho tệp được giải nén
Ofstream out (outputfile, iOS :: nhị phân);

// Tạo bộ đệm để lưu trữ dữ liệu nén
bộ đệm char [1024];

// Đọc dữ liệu nén từ tệp đầu vào
while (in.read (bộ đệm, sizeof (bộ đệm))) {
// giải nén dữ liệu
vector <par> giải mãData = giải nén (bộ đệm, in.gcount ());

// Viết dữ liệu được giải nén vào tệp đầu ra
out.write ((char*) & giải mãData [0], giải mãData.size ());
}

// Đóng các luồng đầu vào và đầu ra
ghim theo();
out.close ();
}

// Xác định chức năng để nén dữ liệu
Vector <par> nén (dữ liệu const char*, int size) {
// Tạo bộ đệm để lưu trữ dữ liệu nén
Vector <par> néndata;

// nén dữ liệu
for (int i = 0; i <size; i ++) {
// Nhận byte dữ liệu tiếp theo
char byte = data ;

// Thêm byte nén vào bộ đệm
CompressedData.push_back (byte);
}

// Trả về dữ liệu nén
trả về néndata;
}

// Xác định chức năng để giải nén dữ liệu
Vector <par> giải nén (dữ liệu const char*, int size) {
// Tạo bộ đệm để lưu trữ dữ liệu được giải nén
Vector <par> giải néndata;

// giải nén dữ liệu
for (int i = 0; i <size; i ++) {
// Nhận byte dữ liệu tiếp theo
char byte = data ;

// Thêm byte được giải nén vào bộ đệm
giải mãData.push_back (byte);
}

// Trả về dữ liệu được giải nén
trả lại giải néndata;
}

int main () {
// nén một tệp
CompressFile ("input.txt", "output.zip");

// Giải nén một tệp
unzipfile ("output.zip", "output.txt
=======================================
## Zip Unzip C++ Source Code

**What is Zip and Unzip?**

Zip and unzip are two file compression and decompression algorithms. Zip is a lossless compression algorithm that reduces the size of a file by removing redundant data. Unzip is the opposite of zip, and it restores a compressed file to its original form.

**C++ Zip and Unzip Source Code**

The following is the C++ source code for zip and unzip:

```c++
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

// Define the compression level
const int COMPRESSION_LEVEL = 9;

// Define the function to compress a file
void compressFile(const string& inputFile, const string& outputFile) {
// Create an output stream for the compressed file
ofstream out(outputFile, ios::binary);

// Create an input stream for the original file
ifstream in(inputFile, ios::binary);

// Create a buffer to store the data from the original file
char buffer[1024];

// Read data from the original file and compress it
while (in.read(buffer, sizeof(buffer))) {
// Compress the data
vector<char> compressedData = compress(buffer, in.gcount());

// Write the compressed data to the output file
out.write((char*)&compressedData[0], compressedData.size());
}

// Close the input and output streams
in.close();
out.close();
}

// Define the function to unzip a file
void unzipFile(const string& inputFile, const string& outputFile) {
// Create an input stream for the compressed file
ifstream in(inputFile, ios::binary);

// Create an output stream for the decompressed file
ofstream out(outputFile, ios::binary);

// Create a buffer to store the compressed data
char buffer[1024];

// Read the compressed data from the input file
while (in.read(buffer, sizeof(buffer))) {
// Decompress the data
vector<char> decompressedData = decompress(buffer, in.gcount());

// Write the decompressed data to the output file
out.write((char*)&decompressedData[0], decompressedData.size());
}

// Close the input and output streams
in.close();
out.close();
}

// Define the function to compress data
vector<char> compress(const char* data, int size) {
// Create a buffer to store the compressed data
vector<char> compressedData;

// Compress the data
for (int i = 0; i < size; i++) {
// Get the next byte of data
char byte = data;

// Add the compressed byte to the buffer
compressedData.push_back(byte);
}

// Return the compressed data
return compressedData;
}

// Define the function to decompress data
vector<char> decompress(const char* data, int size) {
// Create a buffer to store the decompressed data
vector<char> decompressedData;

// Decompress the data
for (int i = 0; i < size; i++) {
// Get the next byte of data
char byte = data;

// Add the decompressed byte to the buffer
decompressedData.push_back(byte);
}

// Return the decompressed data
return decompressedData;
}

int main() {
// Compress a file
compressFile("input.txt", "output.zip");

// Unzip a file
unzipFile("output.zip", "output.txt
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top