c++ 폴더 생성 FileCtrl.hpp 필요 // 해당 경로에 폴더가 없으면 생성 if(!DirectoryExists(경로)) { ForceDirectories(AnsiString(경로)); } 카테고리 없음 2024.10.02
선택한 디렉토리 안의 파일, 하위 디렉토리를 읽어오는 법 TSearchRec, FindFirst, FindNext, FindClose 사용 sr은 TSearchRec 구조체 if(FindFirst(경로, 속성, sr) == 0) // 찾는 파일이 있다면 { do { // 해당 동작 실행 }while(FindNext(sr) == 0); // 다음 파일로 (다음 파일이 없을때까지 반복) } FindClose(sr); 카테고리 없음 2024.10.02
ini 파일 읽고 쓰기 ini 파일이란?Initialization의 약자로 설정/환경 파일의 일종 단순 구조의 텍스트 파일로 이루어져 있으며 .ini라는 확장자를 가진다. 보통 특정 어플리케이션이 실행될 때 해당 ini 파일을 통하여 어플리케이션 실행에 필요한 기본 정보를 받아오게 된다. TIniFile ini 파일에 대한 조작을 위한 클래스 // #include 추가 필요 AnsiString fullpath;fullpath .sprintf ("C:\\TEST\\Test.ini");TIniFile *ini = new TIniFile(fullpath); ini ->WriteString ("Machine1", "파일생성날짜", "240919");ini ->WriteString ("Machine1", "작동시간", ".. 카테고리 없음 2024.09.20
SECS/GEM 통신 2 SECS/ Message STREAM하나의 그룹으로, 비슷한 기능이나 서로 관련된다고 생각되는 message를 묶어놓은 것을 Stream이라고 한다. FUNCTIONStream 그룹에 속해 있는 특정한 실제 기능(동작 방식)을 하는 각각의 메세지를 function이라고 한다또한, 이런 각각의 메세지에 번호를 부여하여 구분된다전송 메세지의 function 번호는 항상 홀수이며, 이에 대한 응답 메세지의 function 번호는 +1을 한 짝수이다 각 Stream에서 다루는 내용을 보면 Stream1 - Equipment Status (통신 체크) Stream2 - Equipment Control and Diagnostics (셋) Stream3 - Material Status Stream4 - Mater.. 카테고리 없음 2024.09.11
SECS/GEM 통신 반도체 산업에서 SECS/GEM 통신이라는 용어를 많이 사용한다 SEMI란?국제반도체장비재료협회(Semiconductor Equipment and Materials International)에서 제정한 국제 표준 규악이며약 1,000여 개 이상의 표준이 있다 전 세계의 다양한 반도체 설비 제조업체들이 각각의 설비들을 각자만의 표준으로 제조하게 될 경우 이를 통합하기 위해선 막대한 시간과 인력이 들어갈 뿐만 아니라 유지 보수 및 관리에도 많은 어려움이 있을 것이다. 이를 방지하고 효율을 향상 시키기 위해 나온 것이 SEMI Standard. 즉, SEMI 표준 이중 E4, E5, E37은 설비 간의 데이터 통신을 담당하는 표준 규약이다.각각 SECS-I SECS-II HSMS 장비와 호스트의 통신 서버.. 통신 2024.09.10
#include header 작성법 들어가기에 앞서# 은 컴파일러에게 명령을 하는 전처리기이다include는 말 그대로 포함한다는 의미를 가진 예약어이다 이를 합쳐서 우리는#include~을 포함하라고 컴파일러에게 명령을 하는 것이다 문득#include 와 #include "" 의 차이점도 궁금할 것이다간략하게 말해보자면 시스템 경로에서 해당 헤더파일을 검색해서 포함하는 것이고,현재 디렉토리에서 검색 후 포함, 없다면 시스템 경로를 검색한다 즉, 기본적으로 주어져 있는 헤더파일을 추가할 때는 인클루드 #include 개발자가 직접 만든 헤더파일을 추가할 때는 #include "" 을 쓴다. 우리가 아무생각 없이 추가한 헤더파일도 권장하는 순서가 있다 그것은 구글에서 권장하는 방법으로 https://google.github.io.. 카테고리 없음 2024.09.10
VCL 함수 정리 - 임시 ChangeFileExt() 함수확장자 변경할 때 사용- AnsiString ChangeFileExt(AnsiString FileName, AnsiString Extension); ChangeFileExt() 함수확장자 제거할 때 사용- ChangeFileExt(FileName , ""); ExtractFileExt() 함수파일 경로에서 확장자만 추출하는 함수- ExtractFileExt (FileName); 카테고리 없음 2024.09.01
EAccessViolation 일반적으로 메모리 접근(엑세스)를 잘못 했을때 발생 First chance exception at 0x7567B760 . Exception class EAccessViolation with message 'Access violation at address 0092F9B4. Read of address 0000000C'. Process test.exe (0x5EC) 0092F9B4 - 문제가 되는 코드(바이너리) 위치 0000000C - 엑세스 하려는 메모리 주소 카테고리 없음 2024.09.01
C++ 빌더 컴포넌트 에러 EInvalidGridOperation 에러-주로 TGrid or TDBGrid와 관련된 작업을 수행할 때 발생 Grid too large for operation 에러- 그리드의 크기(행과 열의 수)가 너무 커서 해당 작업을 수행할 수 없을때 발생 zipbuilder this archive is not a valid zip archive- zipbuilder 컴포넌트 사용중 압축 해제할 zip파일이 올바르지 않을때 발생 카테고리 없음 2024.09.01
C++ 빌더 폴더 생성 및 폴더에 파일 생성할 때 사용 하는 함수 ForceDirectories()함수 - 폴더가 없으면 강제로 생성 (Delphi나 C++ Builder와 같은 Pascal 기반 언어에서 사용되는 함수)ExtractFilePath()함수 파일 이름중에서 폴더 부분만 추출 FileExists()함수 - 파일이 존재 하는지 확인- FileExists(filename) DirectoryExists()함수 - 폴더가 존재 하는지 확인- FileExists(foldername)#include 헤더 파일 추가 SaveToFile() - memo 컴포넌트에 사용 카테고리 없음 2024.08.29