창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by Anonymous2002-09-17 00:48:03, Hit : 4807
[잡담] 구상만 해놓았던 것. ;;
Homepage : http://fantasy.ne.kr
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=freeboard&no=46
제가 쓰는 글 특성상 존댓말은 거의 안나옵니다 ;;
제가 싸-_-;가지 없다고 생각하시고 그냥 읽으시길...

보시고 감상이나(ex. 에잇 이런 쓰잘데기 없는 것이나 생각하다니! 공부나 햇!)
고칠점 (ex. 숫자 오타인데요...;;), 질문 (ex. 저거 돌아가긴 하나요?) 등을 달아주세요.

-----------------------------------
창조 자체로 많은 파일 압축하기 (구상)
-----------------------------------

물론 zip, rar, ace 등등 많은 압축파일 형식처럼 파일 하나로 모두 해결할 수 있다면 얼마나 좋을까만은 ;; 그건 절대 불가능하다. (파일 갯수가 하나인거랑, 파일 갯수가 천개인 것과는 서로 헤더 용량이 틀릴 수 밖에 없기 때문이다. 그렇다고 파일 갯수를 제한한다면 그건 압축 프로그램이 아니지 ;;)

먼저 a.txt, b.txt, c.txt가 있다고 하자. (예일뿐이다.)
파일 목록을 리스트 박스에 다 싸잡아놓고, 바이트를 계산한다.
a.txt - 1000 byte
b.txt - 1234 byte
c.txt - 4321 byte

* 예가 상당히 조악하지만 -_-;;; 알아서 듣고 넘어가기 바란다.

그러면 이제 파일을 합친다. 도스창을 띄우든 파일을 열어서 써넣든 간에 그건 자유다.
(중요한 것은 객체로 열면 바이너리 파일은 깨진다. -_-)
합친 파일은 compress.tmp 라고 하자. 총 합은 6555 byte이다. (덧셈)

환경정보 파일이 필요한데, 왜냐하면 일반 파일 액세스보다 간편하기 때문이다. -_-;;
파일 이름에 따라 계산할 필요도 없고 (구분자를 쓰면 되니까)...
(파일 액세스 할 줄 아는 사람은 그걸 쓰도록... 쿨럭)
명령어를 써서 아래처럼 만들자. 파일 이름은 complete.cfi라고 하자. (Compressed File Info)

[Info]
filename = complete.ccf
TOTAL = 3
1 = "a.txt|0|1000"
2 = "b.txt|1001|1234"
3 = "c.txt|1235|4321"

TOTAL은 전체 파일 갯수이다.
"a.txt|0|1000"은 첫번째로 a.txt 파일이 있고, 총 1000 바이트라는 것을 가리킨다. 그리고 0바이트, 맨 처음 바이트부터 시작한다는 것. '|' 문자는 파일 명에 들어갈 수 없으므로 구분자로 적당하다, ':'을 써도 무방하다. 물론 쪼개는 함수는 따로 만들어야 하겠지만. 구조체가 지원하지 않아 이때 불편하다.
(그런데 코딩에 따라 저기서 오류가 발생할 수도 있다. 적당한 값을 찾길)

그 다음 compress.tmp를 압축해버리자. 파일 용량이 줄면 주는 것이요 늘면 느는 것이니 ;
중요한건 방법이지 바이트 수가 아니다 ;;; (돌은 내려놓으시길.)
압축한 파일은 뭐... complete.ccf 라고 해두자. (Createall Compressed File... ;;;)

자 그러면 이제 파일 두개가 생긴다.
complete.cfi와 complete.ccf. (못 뜯어보게 cfi를 압축하건 안하건 그건 멋대로다 -_-)

파일 풀때는 역으로 하면 된다. 문제는 파일 두개가 있어야 한다는 점 뿐. -_-)
해제 프로그램을 만들때에는 bin/cue 쓰듯이 하면 될듯하다. cfi 파일을 열면
파일 갯수, 확장자, 바이트, 순서 (번호)가 나오니 그걸로 목록을 만들고, 풀 파일은 다 풀면 모르되
파일 하나만 풀면, 예를 들어 b.txt를 풀면 일단 ccf를 풀어낸 다음에 1001바이트부터 1234 바이트까지 읽어오면 되는 것이다. 이것은 별 수 없이 파일 제어를 사용해야 할 듯하다. (웬지 TAR+GZIP이 생각나는 이유는?)


효율이 있는지 없는지는 중요하지 않다. 중요한건 이런것도 가능하다는 것이지...

아마도 작은 텍스트 파일 다수를 압축하거나 할때에는 유용하게 쓰일지 모르겠으나

큰 바이너리 파일 다수를 압축하는 것은 포기하는게 좋을듯 싶다. (-_- 당신의 컴은 슈퍼컴퓨터인가? 아니면 인내심이 강한가...)

노턴안티바이러스를 보면 오토 업데이트로 인터넷에서 파일을 받아 백신을 업그레이드 하는데

그것처럼 텍스트 파일을 받아 기능상 업그레이드를 할 필요가 있다면, 그리고 이 이론(?)을 바탕으로

소스가 만들어진다면 한번 써보라고 권유는 해보고 싶다. (왜? 일단 이론은 내가 만들었으니까 -_-;;)


----------------
여기서 추가.

파일 하나로도 해결할 수 있는 방법이 있긴 하다. 하지만 골아프다.

헥스코드를 이용하는 방법인데,

위의 방법에서 Complete.ccf와 complete.cif 를 더한 다음 -_-;; (또 더하냐?)

(물론 다시 압축할 필요는 없다. 하지만 complete.ccf와 complete.cif를 압축하지 않았다면
압축하길 권장한다. 쉽게 뚫리는 구조기 때문이다.)

맨 뒤에 4바이트를 써서 complete.ccf가 끝나는 위치를 기록하는 방법이다.

FF FF FF FF (4바이트의 최대값 헥스표시. 256의 4 제곱의 값이니 4,294,967,295... 사십이억 구천사백구십육만 칠천이백구십오 바이트! 헉헉... ) 으로 표시한다면, 약 4096메가바이트 (아까 저 숫자를 복사한 다음 1,048,576 백사만 팔천오백칠십육 바이트로 나눠보라.)까지 기록이 가능하다. (쿨럭) 3바이트면 16M까지. 2바이트면 65K까지 표현가능하다.

이렇게 한다면 순서는 조금 바뀔것이다.

1. 파일을 열어 맨 끝 4바이트를 읽는다.
2. 헥스→데시멀 (10진) 변환.
3. 위치 계산 (간단할지도 ;;)
4. 파일 위치 이동 (ccf파일 끝나는 곳)
5. 읽어낸다 (파일 사이즈 -4 바이트까지. cif 파일 추출)
6. 목록을 짜고, 풀어낼 파일을 표시한 후 풀어낸다. (이게 가장 어려울듯하다)

* 주의할 것은 10→16진은 창조자체지원이지만 16→10진은 없다. 개발해야 하는 것이다.
전에 만들었었는데 제대로 기억이 안나는군 ;;; 시간 나면 만들어 올리기로 하고...


정작 말을 거창하게 해놓은 본인은 전혀 짜본적이 없으므로, 시간이 남아돌고
할 일이 정말로 없으며 자신의 프로그래밍 실력이 천상천하 유아독존이라 생각하시는 분은
도전해보시기 바람. 함수화한다면 더욱 좋겠지...만... 누가 해줄까나.

LIST ALL               GO TO THE TOP


N
C
   Subject
Posted by
Date
H
46
     [re] 감사합니다~*^^
nylon 2002/09/26  4854
45
   글워드, ZSNES 2000, 꼬부 패드 만들었던 꼬부기입니다.
꼬부기 2002/09/25  4052
44
     [re] 글워드, ZSNES 2000, 꼬부 패드 만들었던 꼬부기입니다.
nylon 2002/09/26  4591
43
   아; 썰렁하군요;;..........
nylon 2002/09/25  4097
42
   안녕하세요.. XXX사이트 다모아 랭킹사이트입니다.
다모아 2002/09/23  4430
41
   안녕하세요~창조 초보 '하얀종이'라고 합니다.. [2]
하얀종이 2002/09/22  4710
40
   . [1]
Apol7 2002/09/21  4919
39
     [re] [잡담] 명절은 역시 무료하군요 ~
nylon 2002/09/21  4472
38
   여기 들낙거리면서 공부좀 해야지 -_-; [1]
악의™ 2002/09/19  4031
37
   추석입니다; 당분간은;... [1]
nylon 2002/09/19  4472
36
   채팅방두 만드시는건어때요^^? [1]
창조신화 2002/09/19  4429
35
   여기 홈피 편리하고 참 좋아요...
김환욱 2002/09/19  3886
34
     [re] 여기 홈피 편리하고 참 좋아요...
nylon 2002/09/19  4406
33
   오랜만입니다.. [1]
웃음맨 2002/09/18  4196
32
   워드 프로그램제작에 필요한 그림파일좀... [3]
김환욱 2002/09/18  3981

   [잡담] 구상만 해놓았던 것. ;;
Anonymous 2002/09/17  4807
30
   [잡담] 창조는...
Anonymous 2002/09/17  4931
29
   팁/강좌 메뉴에 있던 [쉬운강좌] 재시작과 함께... [1]
창조신화 2002/09/16  4454
28
   [잡담] 창조툴에 대한 간단한 잡담;; [6]
Pueding 2002/09/08  4637
27
   소스를 찾습니다;....
nylon 2002/09/14  4213
26
   앞에 바꿧네.. ^^;;;
윤현민 2002/09/13  5648
25
     [re] 앞에 바꿧네.. ^^;;;
nylon 2002/09/13  4534
24
   좋은자료 수북히 올려주시길..
이재우 2002/09/13  4815
23
     [reply] 좋은자료 수북히 올려주시길..
nylon 2002/09/13  5150
22
   창조 나 잘 쓸줄 모르는데... 혁수야 나도 앞에 달아줘 [2]
윤현민 2002/09/12  5665
LIST ALL   Prev [1]..[151][152][153][154] 155 [156] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인