그냥 임시로 올려두기 위해 작성함
상황: 다른 모드가 "id"라는 key값에 영향을 받고, unique한 key값(아래 경우 "name")이 존재하는 경우.
- 원본 파일이 업데이트되어 "id"가 바뀌었을 경우 기존에 사용하던 json모드 적용이 불가함.
- 이 프로그램은 "name"값을 이용해 "id"와 "name"을 제외한 나머지 key의 value들을 바꿔준다.
- 또한, 수정된 데이터 및 에러난 데이터를 텍스트 형식으로 내보내므로 추후 복원에 용이하도록 함.
다운로드: https://github.com/snowyegret98/json_replacer_for_toi/releases/download/0.0.5/replace_json.exe
사용법:
1. 원본 json파일을 main.json으로 이름을 바꾼 후 exe와 같이 둔다.
2. 모드 json파일을 add_input.json으로 이름을 바꾼 후 exe와 같이 둔다.
3. exe를 실행시킨다.
정상적으로 작업될 경우 수정된 데이터가 main_edited.json으로 생성된다.
json파일 형식이 안맞거나 존재하지 않으면 "파일이 없거나, 파일 이름이 올바르지 않습니다." 메세지 출력
* ANSI 인코딩으로 작업하므로 CJK 문자가 포함되어 있는 파일 작업시 프로그램을 수정해야 함.
TODO:
-코드 가독성 최적화
-for문을 통해 각각 main.json/add.json keys를 받아온 후, 비교하여 교체하도록 바꾸기 (여러 json 대응)
-위 방법 구현이 힘들다면 모드에 사용되는 json에 대응하는 함수를 각각 만들어서 돌리기
-파일 리스트 자동으로 불러오고, 일괄교체가 가능하도록 수정하기 (수정된 파일을 별도 폴더에 저장하기. 불가능시 파일명[:-3]==add면 작업 중단시키거나 오류기록
- 4가지 상황을 가정하여 테스트
1. 추가파일에 몇몇 항목이 빠져있음
2. 원본파일에 몇몇 항목이 빠져있음
3. 원본파일에 몇몇 항목이 추가됨
4. 추가파일에 몇몇 항목이 추가됨
좌가 원본, 우가 추가파일 아래는 결과물
1. 원본과 비교시, 추가 파일에 몇몇 항목이 빠져있는 경우
-> 수정할 부분만 추가 파일에 적어둔 상황이라고 볼 수 있음. (이상적인 상황)
정상적으로 반영되며, 수정된 데이터 목록이 저장됨.
2. 원본에 몇몇 항목이 빠져있으며, 추가 파일에만 존재하는 경우
-> 원본 파일이 업데이트되며 몇몇 항목이 빠지는 경우라고 설명 가능.
정상적으로 반영되며, result에 에러난 데이터 목록이 뜨게 됨.
3. 원본에 몇몇 항목이 추가되어 있는 경우
(1번과 동일)
-> 원본 파일이 업데이트 되며 몇몇 항목이 추가되어 있는 경우라고 설명 가능
정상적으로 반영되며, 수정한 데이터 목록이 뜨게 됨.
4. 추가파일에 몇몇 항목이 추가되어 있는 경우
(2번과 동일)
-> 원본 오류 방지를 위해 key값들의 기준을 원본으로 잡았기에, 반영되지 않음
나머지 항목은 정상적으로 반영되며, 에러난 데이터 목록이 생성됨.
'간단프로그램' 카테고리의 다른 글
XUnity.AutoTranslator 텍스쳐 이름 변경 프로그램 (0) | 2022.01.12 |
---|