예지력
W
예지력

블로그 메뉴

  • 문의 & 피드백
  • GitHub
  • 분류 전체보기
    • 주식
    • 파생상품
    • crypto
      • 차트에 현대미술
      • 복기
      • 시스템 트레이딩
      • 기술적 분석
      • 블록체인
      • 생각
      • 리서치
      • Token Engineering
    • 이더리움 | ETH
      • 리서치
    • 테라 | LUNA
      • Tefi
      • 루나 LUNA
      • 아스트로포트 Astro
      • 앵커 프로토콜 ANC
      • 미러 프로토콜 MIR
      • 아폴로 다오 APOLLO
      • 프리즘 프로토콜 PRISM
      • 넥서스 프로토콜 NEXUS
      • 레바나 프로토콜 LEV
      • 마스 프로토콜 MARS
      • 더비 스타즈 Derby Stars
    • 프로그래밍
      • AHK 메뉴얼
      • AHK 레퍼런스
      • Delphi XE7
      • C
      • Python
      • Reversing
      • Archive
    • 일상
    • 영화
    • 낙서장
    • Deprecated
      • 로다 플레이어
      • 어의

인기 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
예지력

W

[라이브러리] Easyini - 네이티브 ini
프로그래밍/AHK 메뉴얼

[라이브러리] Easyini - 네이티브 ini

2015. 9. 24. 16:04

 

오토핫키에서 값을 저장하고 불러오는 목적으로 .ini 파일을 사용할 수 있습니다

근데 단점은 너무 느리다는거죠, IniWrite으로 값을 저장할때 ~10개정도까지는 그렇다해도 양이 늘어나면 많이 느리다는걸 느끼실꺼에요

또한, 문법이 길고 FileName을 계속 지정해줘야 한다는 귀찮은 문제도 있겠네요

 

이러한 기존 Ini의 문제를 해결하고자 Verdlin 이 새로운 클래스를 만들어냈었습니다, 바로 Easyini

벤치마킹의 결과를 보시면 알겠지만, 기존 IniWrite 보다 1162% 더 빠릅니다

5만개의 값을 저장하는데 Easyini 클래스는 21초, IniWrite 은 4분 4초가 걸립니다

{
 iAhkPID := DllCall("GetCurrentProcessId")
 Process, Priority, iAhkPID, H
 
 vIni := class_EasyIni("test.ini")
 
 Loop 50000
 {
  if (!vIni.AddSection(A_Index, A_Index, A_Index, sError))
   sErrors .= sError "`n"
 } ; ~ 1초
 
 vIni.Save() ; ~ 20초
 
 Loop 50000
  IniWrite, %A_Index%, IniWrite.ini, %A_Index%, %A_Index%
 ; ~ 4분 4초
 return
}

 

또한 커스텀 클래스덕분에 네이티브 오브젝트처럼 접근해 사용할 수 있습니다

 

Easyini 다운로드 \Lib 폴더에 저장하거나 #include 하세요

class_EasyIni.ahk

 

문법

; ini 오브젝트를 생성,설정하기
vIni := class_EasyIni("파일명.ini")
 
; 어레이(배열)로 받고싶을때
for section, aKeysAndVals in vIni
   for key, val in aKeysInVals
      vIni[Section][key] := 1
 

; 배열로 ini 값을 가져올때 (ini 파일을 파싱할때)
vIni[SectionName을 변수로 받음][KeyName을 변수로받음] := 값

 

; 가장 일반적인 방법, 기존 ini 문법하고 비슷하죠?
vIni.Section이름.Key이름:= 값

vIni.Section이름[Key이름 변수로받음] := 값

vIni[Section이름 변수로받음].Key이름:= 값

 

예제

MyName := "예지력"

 

; ini 파일 오브젝트 생성하기
vIni := class_EasyIni("TEST.ini")

 

vIni.Section1["키이름1"] := "설정값1"

vIni.Section1["키이름2"] := "설정값2"

 

vIni.Section2["키이름1"] := "설정값1"
vIni.Section2["키이름2"] := "설정값2"

 

vIni.Section3["이름"] := MyName

 

; 저장하기 - 스크립트 경로에서 'TEST.ini' 파일이 생성됨
vIni.Save()

 

; 확인 목적으로 ini 파일 열기
try
 Run, TEST.ini
return

728x90
저작자표시 비영리 동일조건 (새창열림)

'프로그래밍 > AHK 메뉴얼' 카테고리의 다른 글

[팁] 코드 최적화 Code Optimization  (13) 2015.10.15
[팁] 코드의 속도, 성능을 높이는 한줄 팁 모음  (8) 2015.10.09
[파싱] 오토핫키 파싱과 정규식 정리  (29) 2015.03.14
[공개] 오토핫키 반응형 학습 어플리케이션  (33) 2015.02.22
[정보] 오토핫키 간이 에디터  (2) 2015.02.18
    '프로그래밍/AHK 메뉴얼' 카테고리의 다른 글
    • [팁] 코드 최적화 Code Optimization
    • [팁] 코드의 속도, 성능을 높이는 한줄 팁 모음
    • [파싱] 오토핫키 파싱과 정규식 정리
    • [공개] 오토핫키 반응형 학습 어플리케이션
    예지력
    예지력

    티스토리툴바