메뉴 건너뛰기

나는 갈 데가 없다

만듦

기타 자막파일 이름 일괄변환기

2013.12.03 03:37

뀨뀨함폭 조회 수:1537

나디아 BD립 보려다가 영상이랑 자막 파일 이름 맞추는게 귀찮아서 만들어봤다.

이미 훌륭한 일괄변환 소프트웨어가 많지만 그조차도 셋팅하기 귀찮은 사람들만 쓰면 될듯

예제


 1.png 


영상 파일들과 자막 파일들의 이름이 다르다.

같은 폴더에 renamer.exe를 넣고 실행하면...


 2.png 


모두 변경됐다. 참 쉽죠잉?



발로 만들었기 때문에 제약사항이 굉장히 많은데...



0. Windows만 지원. DOS 커널 기반의 OS(XP 이전)에서도 정상 작동 안됨.

1. 영상은 avi, mp4, mkv, wmv 확장자만 지원하고, 자막은 smi, srt, ass 확장자만 지원.

2. 확장자가 일치해야 한다. 예를들어 1~5화는 avi인데 6화는 mkv, 10~20화는 mp4 이럼 안 된다. 자막 파일도 마찬가지.

3. 본 영상, 본 자막 외에 쓰잘데기 없는 영상이나 자막 파일이 같은 폴더에 껴있으면 안 된다. 그런 것들은 다른 폴더에 격리해놓자.

4. 영상 파일과 자막 파일이 같은 개수 존재해야한다. 영상은 24개인데 자막은 23개... 이런 거 용납 못해!

5. 영상이든 자막이든 화수 표기가 반드시 01, 02 ... 또는 001화, 002화 ... 0을 통한 자릿수 맞춤이 되어 있어야 한다. 1 2 3 요러면 작동 안함.

6. 파일 이름 앞부분도 반드시 일정해야 한다. 1화는 [zero-raws], 2화는 [leopard-raws], 10화는 신비로_ 뭐 이러면 안 됨.
하지만 ふしぎの海のナディア 第04話 「万能潜水艦ノーチラス号」, ふしぎの海のナディア 第08話 「ナディア救出作戦」 처럼 부제목이나 뒷부분 표기는 달라도 상관 없다.

7. 거의 없겠지만 256편 이상의 영상은 지원 안함.



본래 제약이 전혀 없는 훌륭한 프로그램을 만들자는 취지였으나 아무리 생각해도 시간낭비라 걍 대충 만들었다.

내 컴퓨터 외엔 안돌려봐서 니들 컴에서 정상 작동할지 보장도 못함. 버그 제보받아도 안 고칠거.

그냥 쓰지마라.

#include <string>
#include <Windows.h>
#include <algorithm>

using namespace std;

int main()
{
WIN32_FIND_DATA find_data;
HANDLE hFind;
wstring extension[4] = {L"*.avi", L"*.mp4", L"*.mkv", L"*.wmv"};
wstring subex[3] = {L".smi", L".srt", L".ass"};
wstring files[256], subs[256];

int file_cnt = 0, sub_cnt = 0;

for(int i=0; i<4; ++i)
{
if((hFind = FindFirstFile(extension[i].c_str(), &find_data)) != INVALID_HANDLE_VALUE)
{
files[file_cnt++] = find_data.cFileName;
while(FindNextFile(hFind, &find_data))
files[file_cnt++] = find_data.cFileName;
break;
}
}
FindClose(hFind);
sort(&files[0], &files[file_cnt-1]);

int subtype = 0;
for(; subtype<3; ++subtype)
{
wstring temp = L"*" + subex[subtype];
if((hFind = FindFirstFile(temp.c_str(), &find_data)) != INVALID_HANDLE_VALUE)
{
subs[sub_cnt++] = find_data.cFileName;
while(FindNextFile(hFind, &find_data))
subs[sub_cnt++] = find_data.cFileName;
break;
}
}
FindClose(hFind);
sort(&subs[0], &subs[file_cnt-1]);

for(int i=0; i<file_cnt; ++i)
{
wstring temp = files[i].substr(0, files[i].rfind('.')) + subex[subtype];
MoveFile(subs[i].c_str(), temp.c_str());
}

return 0;
}


완벽한 오픈 쏘-쓰이므로 전산학 관련 학부생 나갈러가 있다면 이거 개조해서 과제로 제출해도 좋습니다. ^오^

번호 제목 글쓴이 날짜 조회 수
공지 창작게시판 사용안내 [12] 하레 2011.04.26 14861
65 십년 넘은 모니터 고친게 자랑. ..은 결과적으로 #fail [6] file 네버엔딩 2016.01.22 845
64 HG 건담 발바토스 [2] file TrollMage 2015.10.11 804
63 배박질 신임무 실장되는 만화 file 리카아메 2015.06.26 682
62 상반신 완성 [3] file 리카아메 2015.06.05 45
61 에바는 역시 어깨뽕이야 [2] file 리카아메 2015.06.03 45
60 에바 초호기 진척상황 [2] 리카아메 2015.06.01 46
59 10년만에 만드는 에바 [4] file 리카아메 2015.05.28 49
58 나도 곧 따라갈테니까...... [3] file 수은중독 2015.03.22 122
57 단체 후드티 하나 만드려고 하는데 [10] Foodnana 2014.05.22 865
56 근로자라 못살겠습니다. [5] 오보에 2014.05.13 482
55 [프로그램] 음방할때 편리하게 쓸수있는 웹서버 [3] file TrollMage 2014.05.02 532
54 하츠네미쿠 퍼즐을 한국어로 개사해 보았다 [2] 간길 2014.04.03 781
53 마계 떡볶이 [5] 쿠로누마사와코 2014.04.03 709
52 건프라 조립 [5] 간길 2014.03.26 701
51 유키미쿠짱과 함께하는 Magical 베이킹~★ '도너츠' [2] 앙리에타™ 2014.03.18 838
50 국내 동인 키네틱노벨 <억새밭 사잇길로>가 절찬리 배포중입니다! >< [8] 月主 2014.02.25 966
» 자막파일 이름 일괄변환기 [15] file 뀨뀨함폭 2013.12.03 1537
48 중2병이라도 사랑이 하고 싶어 극장판 한글화 [5] b_y_s_l 2013.11.18 1257
47 사천짜장 [5] Libra 2013.10.24 1141
46 엄마가 저녁에 없어서 [5] 갓마미갓루카 2013.10.10 1080
위로