File I/O - 파일 입출력
파일 시스템: ImEDA는 네이티브 파일 포맷과 레거시 포맷을 모두 지원합니다. 모든 파일 I/O는
c_filesystem API를 통해 수행되며, 경로는 c_paths를 사용합니다.I/O 모듈
imsexpr_dll 핵심
ImEDA S-Expression 파서. 네이티브 파일 포맷의 읽기/쓰기를 담당합니다.
- S-Expression 렉서/파서
- .imsch, .imepd, .imslib 등 네이티브 포맷
- .imsnip 스니펫 지원
- imengine 어댑터 포함
csiedaio_dll
레거시 파일 포맷 읽기 전용. 구버전 파일 호환성을 제공합니다.
- .sch, .epd, .slib 레거시 포맷
- .csisch, .csiepd, .csislib 포맷
- 읽기 전용 (쓰기 불가)
dxfio_dll
DXF 파일 가져오기/내보내기. PCB 보드 외곽선 등에 사용됩니다.
- DXF Import (Board Outline)
- DXF Export
- 레이어 매핑 지원
파일 포맷 테이블
| 문서 유형 | ImEDA (신규) | 레거시 | ContentType |
|---|---|---|---|
| 회로도 | .imsch | .sch, .csisch | SchDocument (0) |
| 전자부품 심별 | .imepd | .epd, .csiepd | EpdDocument (1) |
| 심별 라이브러리 | .imslib / .imsym | .slib, .csislib | SlibDocument (2) |
| 풋프린트 | .imfp | .fp, .pcblib | FpDocument (3) |
| PCB 보드 | .impcb | .pcb, .csipcb | PcbDocument (4) |
| 프로젝트 | .imprj | - | - |
| 프로젝트 그룹 | .imgrp | - | - |
| 스니펫 | .imsnip | .csipet | - |
| 풋프린트 라이브러리 DB | .imflib | - | - |
경로 시스템
| 영역 | 기반 경로 | 용도 |
|---|---|---|
| Root (읽기 전용) | install/ | 설정 파일, 데이터, 아이콘, Lua 스크립트 |
| User (읽기/쓰기) | AppData/Local/ImEDA/ | 사용자 설정, 위젯 상태, 임시 파일 |
// c_paths 주요 메서드 root_dir() // install/ conf_dir() // install/conf/ data_dir() // install/data/ icons_dir() // install/icons/ lua_dir() // install/script/lua/ user_local_dir() // AppData/Local/ImEDA/ user_conf_dir() // AppData/Local/ImEDA/conf/ user_temp_dir() // AppData/Local/ImEDA/temp/