|
프로그램의 환경설정 정보는 보통 크기가 매우 작기 때문에
굳이 파일로 저장하기 보다는
INI 파일이나 레지스트리로 저장하시는 것이
윈도에서는 표준적인 방법입니다.
방법도 무지 간단합니다.
INI 파일을 사용하시려면 TIniFile,
레지스트리를 쓰시려면 TRegistryIniFile 클래스를 쓰면 됩니다.
(INI 파일보다는 레지스트리를 쓰는 방법을 더 추천합니다.)
INI 파일을 쓰는 경우를 예로 들어보죠. (레지스트리를 쓰는 코드도 거의 유사합니다.)
다음 코드를 사용하면 .INI 파일에 다음과 같이 저장하고 읽습니다.
[Settings]
StoredComSetting=1
권혁준 님이 쓰신 글 :
: 안녕하세요
: 바쁘시더라도 함 봐주셔요...
:
:
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
TIniFile *IniFile = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
ComPort = IniFile->ReadInteger("Settings", "StoredComSetting", 1);
delete IniFile;
: }
: void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
: {
TIniFile *IniFile = new TIniFile(ChangeFileExt(Application->ExeName, ".INI"));
IniFile->WriteInteger("Settings", "StoredComSetting", ComPort);
delete IniFile;
: DestroySystems();
: }
: // 컴포트 선택 다이얼로그
: void __fastcall TPortSelection::FormCreate(TObject *Sender)
: {
: // Range Check on create to eliminate errors.
: if (ComPort > 4) {// com4까지만 있음
: ComPortSelectionGroup->ItemIndex = 1;
: }
: else {
: ComPortSelectionGroup->ItemIndex = ComPort-1;
: }
: }
: 메인폼의 Create에서 파일에 입력된 포트값을 읽어서 컴포트 선택 다이얼로그가 뜰때
: 그 값대로 라디오버튼을 체크합니다....
: 메인폼이 끝날때 그값을 파일에 저장해 놓구요...
:
: 문제는.....
: 처음 실행해서 컴포트 라디오버튼을 체크한후 프로그램 종료후 다시 실행 시키면
: CFG 파일에 그 값이 저장이 안되서 컴포트가 선택이 안됩니다.....
: 그래서 cfg파일을 열어서 제가 임으로 숫자를 넣어 주면....그다음 부터는...
: 제대로 동작이 됩니다...
: 컴포트 바꾸고 종료후 다시 실행하면...cfg파일에서 읽어와서 마지막에 세팅됬던..
: 컴포트에 체크가 되지요....
:
: 이유를 모르겠습니다.........
: cfg파일을 강제적으로 수정을 가한후 하면 되네요......
: 이소스는 bcb3 버젼에서 짰던 소스구요....전 5를 사용하고 있습니다...
:
: 살려주세요............
: 혹시 이방법 말고 딴 방법이 있으면 알려주셔도 감사하겠습니다...
:
:
:
|