(HTAs) HTAallRen v0.3b - 파일이름 일괄변경 프로그램(자작) Program

작년 7월17일에 0.1b 버전을 만들어 배포했는데, 개인적으로 사용하려고 만든 프로그램이라서 왠만하면 업데이트를 하지 않으려 했으나, 사용하면서 내가 불편한 점이 있어서 수정을 했다.
코드를 수정하면서 일부 버그가 있는 부분도 수정했다.

0.1b 버전에서는, 라디오 버튼과 체크 박스 등을 선택할 때, 꼭 그 버튼이 있는 곳을 눌러야 했기 때문에 조작에 불편함이 있었고, 선택을 했는지 눈에 잘 띄지 않는 불편함이 있어서, 글자 부분을 클릭해서 선택이 되도록 사용자 환경을 개선했다.
또한, 작업을 완료한 후 알림 메시지가 뜨는 것이 불편해서, 작업이 종료되면 바로 프로그램을 닫는 기능을 추가했다.

작업내역--------------
2015.07.30
0.2 beta 작업내용.
라디오 버튼과 체크박스 등을 쉽게 선택하고 해제할 수 있도록 디자인 및 동작방식 변경.

2015.07.31
0.3 beta 작업내용.
페이지는 기본적으로 oncontextmenu, ondragstart, onselect 값을 return false 로 잠궈놓고,
input 과 textarea 에서 마우스를 이용할 때만 드래그 하여 글자를 선택할 수 있도록 자바스크립트 적용.
--------------------

이 정도만 작업하려다가, 목록을 정렬해서 보여주는 부분을 추가적으로 수정하고 있는데, 작업이 쉽지 않아서 일단 0.3b 까지 작업한 프로그램을 올려둔다.

작업 중인 내용은 아래와 같다.
폴더 안의 목록을 화면에 정렬할 때, 윈도우가 자체적으로 보여주는 것과 다르게 정렬되는 문제 때문에 간혹 작업 후에 결과가 달라서 애매한 경우가 생겼다.
그래서 윈도우에서 폴더를 열었을 때 보이는 기본적인 정렬 방식과 똑같이 보일 수 있도록 정렬을 하려고 하는데, 이것을 구현하는 것이 쉽지 않아서 고민 중이다.
Access 의 mdb 를 추가하여 데이터베이스의 레코드 셋 정렬 방식으로 처리하면 정말 간단하게 끝나지만, 이런 단순한 프로그램에 사용하려고 데이터베이스 연결까지 할 필요는 없을 것 같아서 일단 보류하고.
vbscript 에는 배열을 정렬하는 함수가 없어서, 웹에서 검색한 사용자 제작 함수들을 테스트 해보았으나 원하는 대로 동작하는 것이 없었다.
직접 만들어 보려고 했으나, 난이도가 높고 원초적인 코드로 만들면 무리하게 시스템을 많이 사용하는 좋지 않은 코드가 나올 것 같아서, javascript 쪽에서 배열을 정렬하는 함수를 이용해 처리해 볼 예정.


파일 다운로드: 20150731-HTAallRen_v.0.3_Beta.zip

주의: IE 브라우저에서는 보안경고가 뜨지 않지만, 크롬 브라우저에서는 보안 경고와 함께 다운로드가 차단 됩니다.
다운로드 정보 페이지에서 보안 경고를 무시하고 다운로드하면 받을 수 있습니다.
다운로드 후 백신프로그램 등으로 보안검사를 실행하십시오.

관련 정보 참조:
(HTAs) HTAallRen v0.1b - 파일이름 일괄변경 프로그램(자작) 


PS.1-------------------------------------------
예전 버전의 크롬 브라우저에서는 차단이 되었었는데, 현재 크롬 최신버전인 ‘버전 44.0.2403.125 m’ 에서는 경고나 차단 없이 정상적으로 다운로드 됩니다.
V3Lite 사용 환경에서 전혀 문제가 없으나, HTS 등의 프로그램을 구동시키면 별도의 보안프로그램이 추가로 실행되어 동작하는데, 이 보안프로그램이 실행파일인 ‘HTAallRen.exe’ 파일을 자동 삭제할 수 있으므로 주의가 필요합니다.
‘HTAallRen.exe’ 파일은 HTA 환경을 실행시키는 기능만 하기 때문에 보안에 문제가 되는 코드가 포함되어 있지 않습니다.

PS.2 (2015.08.02)--------------------------------
작업을 해보았는데, 윈도우7 의 정렬 방식이 정확히 무엇을 기준으로 하는지 알 수 없다.
정확히 무엇을 기준으로 어떻게 정렬하는지를 알아야 코드를 짜서 로직을 만드는데, 도무지 알 수 없어서 포기하기 전에 데이터베이스의 레코드 셋을 이용하는 방법을 테스트 해보았는데.
기본 세팅은 ‘이름-오름차순’으로 되어 있기는 한데, 폴더의 파일 이름을 Access DB 에 테이블을 만들어 넣어서 ‘오름차순’으로 정렬을 해보니 전혀 다른 순서로 정렬이 되었다.

추가로 얘기하자면,
GetFolder 함수를 이용해 폴더 내의 파일 목록을 불러온 값은 무작위로 불러오는 것이 아니라 이름을 String 변수 형으로 처리하여 오름차순으로 정렬해서 불러오는 것으로 추정된다.
그러나 윈도우는 String 형이 아니라 문자열의 앞쪽에 숫자가 붙어 있으면 가변적으로 숫자나 특수문자를 부분만을 기준으로 먼저 정렬한 후 문자열을 기준으로 정렬하기 때문에 정렬이 되는 방식이 달라서 정렬 결과가 다르게 표시되는 것으로 추정.

예를 들어,

1가.jpg
11가.jpg

라는 두 개의 파일 이름이 있다면,
윈도우7 에서는 위와 같이 정렬해서 보여주지만, GetFolder 함수는 아래와 같이

11가.jpg
1가.jpg

순으로 보여준다.
두 번째 문자열이 하나는 숫자 ‘1’ 이고, 하나는 문자 ‘가’ 이기 때문에, 숫자를 우선하여 정렬한 것이다.
그러나 윈도우7 의 파일 정렬은, 앞의 숫자 부분만을 먼저 기준으로 하여, 숫자 ‘1’ 이 숫자 ‘11’ 보다 작기 때문에 ‘1가.jpg’ 가 먼저 정렬된다.
1차로 분석했을 때는 이런 정도의 차이만 생각해서, 파일의 이름에서 숫자만 분리하여 정렬하는 방법으로 로직을 만들었으나, 테스트를 더 해보니 특수문자로 시작하는 파일 이름이 있을 경우 윈도우7 에서는 더 모호한 방법으로 정렬이 되어 도무지 로직을 어떻게 만들어야 할 지 난감해졌다.

이런 차이 때문에, 간혹 폴더에서 숫자로 일련번호를 매기는 등의 작업을 실행시키면, 사용자가 예상한 순서와 다르게 정렬된 상태에서 작업이 진행되어, 예상과 다르게 순번이 매겨지는 경우가 발생한다.
따라서 윈도우7 폴더에서 보이는 정렬 방법과 동일하게 적용하기 위해서는 윈도우가 어떤 정렬 방식으로 파일을 정렬하는지 정확히 알아야 윈도우7과 똑같이 정렬이 되도록 처리할 수 있다.
현재로써는 추정만 할 뿐 정확히 기준을 알 수 없어서 정렬과 관련한 작업을 더 이상 진행하지 않기로 하였다.


핑백

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

362445
3747
11004279

google_myblogSearch_side

▷검색어

Flag Counter style2