답변해 주신 두분께 감사 드립니다.
제가 만드는게 정석이 아니라 모르는것 찾고 찾고 하다보니 이상하게 안 쓰는 코드도 많이 쓰게 되네요
이번에 저장하는 섹션에 자식 폼의 수만큼 저장하는 거라, 현재 활성화된 카운터를 멤버 변수에 넘겨 줌으로써,
카운터를 키에 저장해서 카운터를 얻었구요.
현재 폴더 구하는 것은 직접 경로를 다 적어주면서 해결 햇습니다.
-> 그런데 생각해보니 다른곳에서 실행해야 하니까 장성호님의 절대경로 구하는 것을 사용하였더니
제가 원하는 던 것을 구할수 있었습니다. 감사합니다.~^^*
그런데 Tinifile이 접하기 쉬운거라 그런지 조회수가 많네요. 신기;; ㅎㅎ 좋은 하루 되시고, 감사합니다. ^^*
장성호 님이 쓰신 글 :
: 저장한 갯수를 다른 섹션에 저장하는 방식도 참 좋을것 같네요
:
: 갯수를 따로 저장하지 않고 하는 방법도 있습니다.
:
: ReadSections //ini 파일에서 대괄호[] 로 싸여진 섹션이름을 모두 읽어줌
: ReadSection // 특정 섹션 및에 있는 Key를 모두 읽어줌
: ReadSectionValues // 특정 섹션 및에 있는 Value값을 모두 읽어줌
:
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: TIniFile *ini=new TIniFile("C:\\MyProgram\\Test.ini");
:
: TStringList *sSecLst=new TStringList;
: TStringList *sKeyLst=new TStringList;
: TStringList *sValueLst=new TStringList;
:
: ini->ReadSections(sSecLst); //[] 로 싸여진 섹션 정보를 모두 읽어줌
: // Memo1->Lines->Assign(sSecLst);
:
: for(int i=0;iCount;i++)
: {
: ini->ReadSection(sSecLst->Strings[i],sKeyLst); //어떤 섹션 및에 Key값을 모두 읽어줌
: ini->ReadSectionValues(sSecLst->Strings[i],sValueLst); //어떤 섹션 밑에 Value값을 모두 읽어줌
: }
:
: delete sValueLst
: delete sSecLst;
: delete ini;
:
: }
:
:
:
: GetCurrentDir()는 현재 실행된 Exe파일이 있는 경로와 다를수 있습니다.
:
: 1) SaveDialog로 파일을 다른폴더에 저장하면 CurrentDirectory가 변경되구요
:
: 2) 프로그램이 시잘할때라도 탐색기에서 사용자가 직접 클릭하거나, 메뉴에서 클릭해서 실행한것이 아니라
: - 시작프로그램에 등록되어있다거나 , 다른 프로그램에서 현재 프로그램을 실행했을경우에는
: 프로그램이 막 시작되는 시점이라 할찌라도 CurrentDirectory는 exe파일이 있는 directory와 다를수 있습니다.
:
: [현재 실행중인 exe파일이 있는 절대경로를 가져오려면]
:
: GetCurrentDir 함수를 쓰는것은 좋은 방법이 아니구요
:
: Application->ExeName 와 전역변수이 ParamStr(0) 가 경로를 포함한 실행파일 이름인데 이것을 이용하세요
:
: 실행파일 경로는
:
: String sExePath = ExtractFilePath( Application->ExeName ) ;
: 또는
: String sExePath = ExtractFilePath( ParamStr(0) ) ;
:
: 그럼.
:
:
:
:
: 30억 님이 쓰신 글 :
: : ini파일을 Write하실때
: : [dataCount]
: : count=3
: : 이렇게 폼의 개수를 쓰고 읽으셔서 for문으로 돌리시면 될거 같구요...
: : TIniFile *ini = new TIniFile("파일이름.ini");
: : "파일이름.ini" -> 절대경로를 사용하시면 될거 같습니다.
: : 저같은 경우에는 프로그램 실행할때 절대경로를 변수에 저장해 놓고
: : CurrentDirectory = GetCurrentDir ( ) ;
: :
: : ini 읽으실때
: : TIniFile *ini = new TIniFile(CurrentDirectory +"\\파일이름.ini");
: : 이렇게 사용하시면 될거 같습니다.
: :
: :
: : 김재범 님이 쓰신 글 :
: : : 여러 섹션의 값을 읽어오는게 힘드네요.
: : :
: : : 쓰기에서
: : : [1]
: : : data
: : : ..
: : :
: : : [2]
: : : data
: : : ..
: : :
: : : 형식으로 햇구요. 숫자 하나당 폼을 생성하려고 합니다.
: : : [1] 의 데이터에는 폼의 정보가 들어있구요
: : :
: : : 저장은 닫기 전 열려 있는 폼의 갯수 만큼 저장 하는거라 정해져 있지 않습니다.
: : : 열기에서 자동으로 opendialog를 사용하지 않고 열려면.
: : : TIniFile *ini = new TIniFile("파일이름.ini"); // 실행파일의 디렉토리 이런식으로 하면 된다고 하던데 안 열리네요.
: : :
: : : 섹션 값이 3개 로 정해져있다면 for 문으로 3번 돌리면 됩니다.
: : : 지금은 오픈 다이얼로그로 열어서 for 문 사용으로 생성하는 것 구현이 되었습니다.
: : :
: : : 섹션 값의 마지막 값을 알수 있다면 그것으로 for 문 돌릴수 있으니 섹션 마지막 값 구하는 것. 또는 섹션의 개수를 구하는 방법을 알고 싶습니다. 그게 없다면 어떻게 해서 읽어와야 할지...
: : :
: : : 그리고 ini 파일 바로 읽어오는 것. 부탁합니다.
: : :
: : : 좋은 하루 되세요`