전체 글 66

파이썬 파일을 읽어서 list로 저장하기

일반 텍스트 파일을 읽어서 리스트자료구조로 저장하는 코드를 소개합니다. 소스코드(파일명: gen_dic_from_file.py)는 다음과 같습니다. f = open("dic.txt", "r") lst = [] while True: line = f.readline().strip() if not line: break lst.append(line) print(lst) 소스코드의 실행 절차는 다음과 같습니다. - 입력파일 dic.txt로부터 한줄씩 내용을 읽어서 변수 lst에 리스트형태로 저장 - 리스트를 출력 실행을 위한 입력파일(파일명: dic.txt)의 내용은 다음과 같습니다. apple ant all benign best boy call car count 소스코드 gen_dic_from_file.py와 ..

Python 2022.02.26

GetLastError 문자열로 출력하기

윈도우환경에서 프로그램을 개발하다보면 피치 못하게 수없이 에러 상황을 겪게 됩니다. 그러한 에러 상황에서는 이유를 알아내야 합니다. 이럴 때 사용할 수 있는 함수가 바로 GetLastError()입니다. 하지만 이 함수의 결과는 바로 알아보기 힘든 숫자입니다. 이 글에서는 GetLastError()가 반환하는 숫자에 대해, 설명적인 문자열로 반환해주는 함수와 출력해주는 함수의 코드를 소개합니다. 소스코드는 다음과 같습니다. #include #include char* GetLastErrorAsString() { DWORD dwLastError = GetLastError(); if (0 == dwLastError) return NULL; char* szMessageBuffer = NULL; size_t si..

Windows 2022.02.25

Windows Application FindProcessId C/C++ Code

프로세스이름으로 프로세스아이디를 찾는 방법입니다. 소스코드는 다음과 같습니다. #include #include #include // returns NULL if failed unsigned long FindProcessId(const char* szProcessName) { HANDLE hProcessSnap = INVALID_HANDLE_VALUE; PROCESSENTRY32 pe32; unsigned long ulPID = NULL; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (INVALID_HANDLE_VALUE == hProcessSnap) { printf("CreateToolhelp32Snapshot failed.\n"..

Windows 2022.02.25

배치스크립트 파일읽기

배치스크립트를 이용하여 파일을 읽는 방법입니다. 예시로 읽을 대상 파일 input.txt의 내용은 다음과 같습니다. 1 2 3 A B C 다음은 배치스크립트 파일의 내용입니다. @echo off FOR /F %%a IN (input.txt) do ( echo line:%%a ) 다음은 실행결과입니다. 파일의 내용을 한줄씩 읽어서 반복문을 실행하는 것을 알 수 있습니다. C:\Users\Admin\Desktop\batch>run line:1 line:2 line:3 line:A line:B line:C C:\Users\Admin\Desktop\batch> 이 배치스크립트를 이용하여 파일에 대하여 줄단위로 여러가지 반복작업을 실행할 수 있습니다.

Windows 2022.02.25

파이썬 오늘날짜로 로그파일 생성해서 로깅하기

파이썬 오늘날짜로 로그파일 생성해서 로깅하기 [소스코드] import logging import datetime log = logging.getLogger() logfilename = datetime.datetime.now().strftime("%Y%m%d.txt") log.addHandler(logging.FileHandler(filename=logfilename)) log.error("error logging test") [실행결과] C:\logtest>dir /b mylog.py C:\logtest>python mylog.py C:\logtest>dir /b 20220221.txt # 로그파일 생성 mylog.py C:\logtest>type 20220221.txt error logging test..

Python 2022.02.21

오토핫키 magnetic window 따라다니는 윈도우

아래의 오토핫키 소스코드를 이용하면 특정 윈도우를 따라다니는 윈도우를 만들 수 있습니다. SetBatchLines, -1 SetWinDelay, -1 Gui, Add, Text, x10 y10 , magnetic window Gui, Show, w300 h200, Magnetic Gui SetTimer, Magnetic, 10 return Magnetic: if WinActive("ahk_class Notepad") or WinActive("ahk_class" . ClassName) { wingetpos, gx, gy, gw, gh WinMove, Magnetic Gui, , gx + gw, gy } return GuiClose: ExitApp 노트패드 윈도우를 움직여보면 윈도우가 계속 따라다니는 동작을..

Autohotkey 2022.02.18

[엑셀] 숫자 지우기

다음의 수식을 이용하여 숫자를 모두 지울 수 있습니다. 셀 A1에 '1한국'이 적혀있을 때 셀 B1에 다음 식을 적어 넣습니다. =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9","") 수식은 0~9의 숫자를 지워주는 역할을 합니다. 길이는 길지만 간단하고 확실한 방법입니다.

Excel 2022.02.18

엑셀 주소 빈칸으로 나누기 수식

주소를 빈칸으로 구분하여 아래와 같이 나눌 때 사용할 수 있는 수식을 소개합니다. 주소의 첫번째로 '시/도'를 추출하기 위해 사용한 수식입니다. =LEFT(A7,SEARCH(" ",A7,1)-1) LEFT함수와 SEARCH함수를 사용해서 아래 그림과 같이 '시/도'를 추출했습니다. 두번째 '시/군/구'를 추출하기 위해 사용한 수식은 좀 더 복잡합니다. =MID(A7, SEARCH(" ",A7) + 1, SEARCH(" ",A7,SEARCH(" ",A7)+1) - SEARCH(" ",A7) - 1) 아래 그림과 같이 잘 추출되었습니다.

Excel 2022.02.15

JavaScript 소수점 반올림 연산 속도 비교(toFixed, Math.round)

소수점 반올림할때 toFixed()함수를 주로 사용했습니다. 그런데 toFixed()함수가 문자로 값을 반환하다 보니 계산할때 ParseFloat()함수를 추가로 사용해야 하는 경우가 꽤 있습니다. 이렇게 추가함수를 사용할 경우 속도가 떨어지는게 당연할텐데 그게 어느 정도인지 궁금해서 테스트를 해봤습니다. 백만회 반복, 소수점 2자리 반올림 const t0 = performance.now() for (let i = 0; i < 1000000; i++) { let a = 341.348181293 a.toFixed(2) } const t1 = performance.now() console.log('toFixed') console.log(t1 - t0, 'msecs') const t2 = performance..

Web/Javascript 2022.02.15