2009-09-23 2 views
0

저는 C 기술을 다듬고 싶고 저의 zip 및 unzip 프로그램을 작성하려고합니다. 이것은 많은 영역, CPU/HDD/메모리에서 발생합니다.지능형 압축기/압축 해제기를 구축하여 C 기술을 향상 시키십시오.

어디서부터 시작해야합니까? 압축하고 압축을 푸는 방법에 대한 흐름 차트가 있습니까? 이런 유형의 프로젝트에 너무 복잡합니까?

걸릴 모든 단계를 수행하는 좋은 책이나 사이트?

누구 에게든이 정보가 도움이되는지 궁금합니다.

+0

하나의 질문에 대한 답을 얻은 것만으로도이를 코멘트로 올리 겠지만, 이것은 학습 프로젝트에 좋은 아이디어라고 생각합니다. 이전의 C 경험에 따라 너무 야심적 일 수도 있지만, 문제가 해결되면 프로그램에서 해결할 수있는 프로그램에서 상당히 명확하게 정의 된 문제입니다. 또한 작동 여부를 쉽게 확인할 수 있습니다. –

+0

참고 : 자신의 프로그램을 압축 해제하고 자신의 파일을 압축 할 수있는 지점에 도달하면 다음 단계는 다른 프로그램과 호환되도록 만듭니다 (즉, 생성하지 않은 zip 파일의 압축을 해제하고 다른 프로그램 만든 파일을 압축합니다.이는 상호 운용성 문제가있는 실제 프로그래밍의 관점에서 볼 때 가치가 있습니다. – Brian

답변

2

위키 백과에서 Huffman encoding을 읽어 볼 수 있습니다. 인코딩은 매우 간단하며이를 통해 어느 정도의 압축 수준을 달성 할 수 있습니다. 이 압축 알고리즘은 연결된 목록, 메모리 할당 - 할당 취소 및 데이터 구조의 올바른 선택을 도와줍니다. 당신은 매우 간단 뭔가를 구현하려면, 단지 구현 Run Length Encoding.

+0

+1 허프만 (Huffman) 인코딩과 Run Length Encoding을 모두 제안하기 때문에 좋은 선택입니다. – Brian

1

추가 제안은 귀하가 더 어려운 것을 찾고있는 경우에 대비하십시오.

프로그램 Crinkler은 작은 실행 파일의 압축을 전문으로합니다. 어떻게 작동하는지에 대해서는 info입니다.

1

우편

2 일, 파일 포장 형식과 (세트) 압축 알고리즘의 조합입니다. 첫 번째는 약간의 시적이지만 비트 디딩 기술을 연마 할 것이며, 두 번째는 더 재미 있고 진보적입니다.

GIF 파일을 읽고 쓰려면 LZW 인코딩 및 디코딩을 C로 구현해야한다는 것을 기억합니다. 이것은 LZW 압축이 매우 똑똑하기 때문에 훌륭한 프로젝트가 될 것입니다. 필자가 본 적이있는 유일한 알고리즘 중 하나 인 ZIP보다 훨씬 더 달성 가능한 목표 인 ZIP

0

Zip, Gzip, Bzip 및 7-Zip과 같은 오픈 소스 응용 프로그램에서 전체 압축 파일에 자체 변형을 구현합니다. 7-Zip은 특히 사용자가 직선 우편을 사용하는 경우보다 파일을 실제로 가져 오는 자체 압축 형식 (7z)을 가지고 있으므로 여기에서 배울 내용이 있습니다.

나는 누군가의 코드를 복사하거나 다른 사람이 해본 일을보고 말하면서 보통 바퀴를 돌리고 다른 방향으로 문제에 대해 생각해 볼 수 있습니다.

관련 문제