/Library/Developer/CoreSimulator/Profiles/Runtimes

해당 위치에 저장된다.

 

여러가지 지원 정보및 파일들이 패키지형태로 압축된것으로 보인다.

 

일단 사용안하는 tv용 시뮬레이터도 지우고 

사용안하는 버전도지우고

 

마지막으로

아래 명령어를 치면 현 xcode에서 실행불가능한 애들도 지워준다.

xcrun simctl delete unavailable

 

용량이... 부족하다.......

 

일단 이슈는 생성자가 삭제할 수 있는게 아니라 해당 레포지토리 생성자만 삭제할 수 있다.

 

;;;;

 

 

공동작업자로 들어간 레포지토리에 고쳐야할 버그들 메모장용으로 쓸까하다가 생성했더니 삭제가 안되서 그 경험으로 남겨보는 글이다.

 

 

 

우선 삭제 하고자하는 이슈페이지에 들어간다.

그리고 오른쪽 하단의 메뉴란을 살펴보면

 

Delete issue 라는 메뉴가 보인다.

 

상단에서 말했듯이 레포지토리 생성자만 있는 메뉴다

 

공동작업자는 해당 메뉴가 없다라고..... 망했어

 

그리고 해당 메뉴를 선택하면 아래 사진과 같은 경고창이 뜬다.

 

delete this issue 를 눌러주면 깔끔하게 이슈가 날라간다.

이글은 제목과같은 문제가 생겨 남긴 기록이다. 

아마 타 공간에서 이 프로젝트를 돌리면 똑같은 문제가 발생하겠지.

 

 

우선 이 문제를 해결한 아주 고마우신분의 글이다

 

https://stackoverflow.com/questions/49505446/main-jsbundle-does-not-exist-this-must-be-a-bug-with-echo-react-native

 

main.jsbundle does not exist. this must be a bug with + echo 'react native

I tried to archive my react native project using Product > Archive on XCode9.2. But Xcode produce this error: File /Users/louis/Library/Developer/Xcode/DerivedData/Scavenger-

stackoverflow.com

 

역시 스택오버플로우는 날버리지않았어...

 

rn으로 작성된 프로젝트의 여러 기본 설정이 들어가는 package.json 파일에 해당 스크립트를 추가한다.

"build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'"

 

없다고 뭐라한 파일은 사실 rn에서 빌드하면 생기는 파일이였다.

해당 파일을 빌드후 원래 있어야할 폴더에 생성해주는 스크립트이다

 

아래와 같이 스크립트 란에 추가하면된다.

 "scripts": {
    "build:ios": "react-native bundle --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --dev=false --platform='ios'",
    등등 여러가지 스크립트
  },

 

해당 파일을 작성만 해주면되는데 (프로젝트 루트에서 yarn build:ios)

이래도 안된다면 xcode 프로젝트 설정의 빌드패스에 생성된 해당 파일을 추가해준다.

 

 

사실난 스크립트란에서 안됐는데 해당문제는 깃에 올라온 파일을 압축해서 다운받았으나 빠진 파일들이 있었다.... 그렇게 오류난 파일들을 다운로드해주고 스크립트를 돌리고 해결..

단어를 찾기전에 잠시 인덱스에 대해 이야기를 해보자

 

스위프트의 문자열 내부는 인덱스로 찾는다

아래 10글자의 문자열이 담긴 text변수는

let text = "가나다라마바사아자차"

기본적으로 startIndex와 endIndex라는 속성을 가지고있다.

 

그래서 내부 인덱스를 검색해서 문자열 안에서 문자열을 빼내려면 인덱스범위를 포함하고있는

Range라는 녀석을 만들어서 배열에서 인덱스로 뽑아내듯 문자열 옆에 붙여주면 뽑아진다.

 

그래서 아래와 같이 처음과 끝을 지정해서 뽑아주면 처음 문자열과 같은 내용이 출력된다.

 

 

조금 특이한게 끝의 인덱스를 포함을 안시켜야 나온다.

 

이제 다시 원래 하려던 문자열 내부의 단어를 찾아라라는 주제로 돌아오면

 

문자열 내부에 어떠한 단어가 있는지만을 판단하기에는 매우 좋은 함수가있다

String 클래스에는 contains()라는 함수가 있는데

 

이를 이용하면 

let isContains = text.contains("다라")

위 코드는 text에 만약 "다라"가 포함되어있다면 true를 아니라면 false를 반환해준다.

 

단어가 있는지는 검사할 수 있으나 이 방법으론 단어가 어디에 있는지도 찾지 못한다.

위에서 문자열 내부에 값을 뽑아내려면 인덱스로 찾는다고했다.

 

그리고 그 인덱스는 range로 만들어내야 한다. 

 

그리고 String 클래스는 인덱스를 만들어주는 함수중 range() 라는게 있다

 

let range0 = text.range(of: "다라")

 

이렇게 하면 text 내부에 "다라" 라고 적힌 녀석중 가장 처음녀석의 위치(인덱스)를 반환하게 된다.

위치일뿐이지 아직 단어 자체는 없다.

 

이 범위, range는 다양하게 쓸 수 있으나 여기서는 별 의미없이 해당 단어 위치만을 뽑아와 서브로 만들어줄꺼다.

총 세개의 범위에서 뽑아낼건데

 

1. 단어 시작전까지 : w0

2.단어 : w1

3.단어 이후 부터 끝까지 : w2

 

 

해당 소스를 돌리면

 

가나

다라

마바사아자차

 

라고 출력이 된다 

위부터 w0 ~ w2 순이다.

 

위 소스들을 좀 정리하자면 

 

 

guard로 "다라"가 없으면 nil을 있다면 해당 세부분을 String으로 변환해서 반환하는 함수로 만들었다.

참고로 문자열에서 Range를써서 뽑은 값은 SubString으로 String으로 변환해줘야 편하게 쓸 수 있다.

 

 

 

 

그냥 문자열을 쪼개는건 split이 편하다.

 

String.range는 아래와 같이 조건을 줘서

검색범위(range), 검색조건(아래소스는 뒤에서부터 검색), NSLocal.... 어느때 사용하는지를 모르겠다.

let range = text.range(of: "다라", options: .backwards, range: text.startIndex ..< text.endIndex, locale: nil)

 

위 코드처럼 조건을 줘서 위치검색이 가능하다.

 

 

 

https://github.com/chrislgarry/Apollo-11/blob/master/README.ko_kr.md

 

chrislgarry/Apollo-11

Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules. - chrislgarry/Apollo-11

github.com

 

위 링크는 한국어로된 readme 파일주소

 

원본은 따로있는거 같으나 일종의 미러 레포지토리라고합니다

 

yayul이라는 처음들어본 어셈블리어로 만들어진 소스들인데

 

못읽어도 신기해보이네요

https://placeholder.com/

 

Placeholder.com: Placeholder.com – The Free Image Placeholder Service Favoured By Designers

What Is Placeholder.com? Placeholder.com generates custom placeholder images on the fly, like these examples:-     How To Use Our Placeholders Just specify the image size after our URL (https://via.placeholder.com/) and you'll get a placeholder image.

placeholder.com

아주 멋진 사이트

placehold.it/ <width x height> / < 배경색 > / < 글자색 > & text=<텍스트> 

이런 식으로 써넣으면 자동으로 이미지를보여주는 재미난 사이트

 

ex) 100x100 크기의 노란배경에 파란색글씨로 1이 적힌 사각형 그림을 보여줘!

http://placehold.it/100x100/ffff00/0000ff&text=1

 

 

// 수정

주소가 변경됐습니다.

 

https://via.placeholder.com/

로 기존사용방법과 동일합니다.

 

https://via.placeholder.com/100x100/ffff00/0000ff&text=1

필자의 가족의 부탁으로 어떤 한 문제집의 전산화를 하고있다.

뭐 그러한 연유로 구글의 OCR 기능을 이용하였다.

 

구글 드라이브는 이미지를 바로 OCR돌려서 워드문서로 만들어주는 놀라운 기능을 무료로 제공해주는데

OCR을 돌릴 이미지 파일을 MyDrive에 업로드한후 오른쪽 클릭하면 연결앱에 Google 문서라는 항목이 생긴다.

위 이미지속 이미지 파일처럼 그 아래에 해당 이미지파일의 이름과 같은 문서파일이 자동 생성되며 열리게된다.

문서파일의 내용은 해당 이미지와 그 이미지의 OCR내용이다.

 

이렇게 해서 OCR돌린 문서로 만든후

 

모든 문서를 합쳐야 하는데....

 

파일은 필터 기능으로 검색해서 한번에 묶어서 다운로드가 가능하나

 

모든 문서를 하나의 문서로 만드는 기능은 제공하지 않는다 .....

 

 

물론 워드 파일을 합치는 서비스를 제공해주는 사이트도 있고(무료 유로 둘다 보인다)

 

거기를 이용해 볼까하고 실제로 앞장 몇문제는 그곳을 이용해서 했다

 

파일 문서가 많아질수록 해당 기능의 개수나 속도때문에 속터져서 결국 누가 파이썬 코드로 만들어둔게 없을까 찾아서 돌렸다.

(파이썬은 그런 요상한 기능을 적어둔게 많이 돌아다닌다. 혹시 누군가 뭔가 반복적인 작업을 빠르게 하고싶다면 파이썬으로 만들어둔게 없는지 찾아보자 진짜 온갖것이 다 돌아다닌다)

 

https://github.com/wiwi-git/python-marge-docx

 

wiwi-git/python-marge-docx

docx파일 병합. Contribute to wiwi-git/python-marge-docx development by creating an account on GitHub.

github.com

위 해당 링크는 이번에 하면서 사용한 코드의 프로젝트다.

사실 내용은 적다.

 

라이브러리는 

https://github.com/4teamwork/docxcompose

 

4teamwork/docxcompose

Append/Concatenate .docx documents. Contribute to 4teamwork/docxcompose development by creating an account on GitHub.

github.com

를 사용했고( py참에서는 docxcompose를 검색하면된다 ) 

 

코드는 분명 스택오버플로우에서 가져온걸 수정했을텐데 원본 링크는 저장해두지않았다...;;

 

뭐 아무튼 주 소스는 아래의 함수이다.

def combine_all_docx(filename_master, files_list):
    number_of_sections = len(files_list)
    master = Document_compose(filename_master)
    composer = Composer(master)
    for i in range(0, number_of_sections):
        doc_temp = Document_compose(files_list[i])
        composer.append(doc_temp)
    composer.save("combined_file.docx")

filename_master는 가장 기본이될 첫번째 문서이고

files_list는 기본문서를 제외한 합칠 문서들이다.

master문서에 composer를 사용해 모든 문서를 붙인다.

그리고 combined_file.docx라는 파일 이름으로 저장.

 

난 돌린 환경이 맥이라서 주소지정이 까다롭지않은데 윈도우에서는 어떨지 모르겠다 ./를 붙이면 되려나 ? 

 

뭐 아무튼 전체 소스에 있는걸 좀 설명해주자면 

prefix는 모든 파일에 공통적으로 있는 앞부분 이름이고 

surfix는 모든 파일에 공통적으로 있는 뒷부분으로

모든 파일은 그부분을 제외하고 숫자로 나열되어 있어서 해당 숫자를 반복문을 돌려서 파일명이 담긴 배열을 만들어서

위 combine_all_docx함수에 넣어줬다.

 

이미지까지 제대로 들어가는걸 확인해서 매우 기쁘나 OCR성능상..... 수정해야할 부분이 많아서 아직도 골치썩고 있다

괜히 해주기로 했어....

'python' 카테고리의 다른 글

python3, db connect class (mysql/mariaDb)  (0) 2020.05.07

+ Recent posts