|
헐..해결하긴 했는데요..
TSaveDialog를 실행했을때 제가 원하는 폴더가 바로 열리도록 InitialDir에 경로를 설정했거든요
그리고 파일생성 함수에서 GetCurrentDir() 함수가 위에 설정한 InitialDir경로로 리턴되더라구요...
흠... InitialDir이라는 속성이 원래 그런건지 아니면 다른 방법이 있는지 아시는분 답변좀 부탁드립니다
그리고 GetCurrentDir함수를 사용할 때 주의점이나 특이한점 있나요?>?
사랑니 님이 쓰신 글 :
: 안녕하세요 많은 도움 얻고있는 초보개발자 입니다 ^^
: 파일 생성 관련하여 질문드리겠습니다. 많은 관심 부탁 드립니다.^^
:
: 아래 코드처럼 해당 디렉토리에 파일이없으면 파일을 만들고 파일이 있으면 오픈해서 기록하겠다는
: 함수중 일부입니다. 그냥 이 함수만 사용하면 별무리없이 잘 만들고 잘 열고 잘써지고 아주 잘 됩니다.
: 그런데 다른폼에서 StringGird의 내용을 TSaveDialog를 이용하여 저장할 경로를 받아 저장하고
: ini파일 형식으로 확장자만 .pos라고 임의로 지정하여 파일을 저장한 후 아래 함수를 실행하면
: 아래 함수에서 파일생성이 되지 않네요...
: FileHandle값이 -1로 들어오는 문제인데요...TSaveDialog로 저장할때 제가 뭘 잘못한건지 모르겠네요..
:
: //A폼에서 파일을 생성 혹은 열어 기록하는 함수///////////////////////////////////////////////////////////////
: if(!FileExists(FullFilePath))
: {
: FileHandle = FileCreate(FullFilePath);
: }
: else
: {
: FileHandle = FileOpen(FullFilePath, fmOpenWrite);
: }
: if (FileHandle==-1)
: {
: return false;
: }
: FileSeek(FileHandle,0,2);
: FileWrite (FileHandle, FullComment.c_str() ,FullComment.Length() );
: FileClose(FileHandle);
: return true;
:
: // TSaveDialog를 이용하여 파일을 저장하는 함수//////////////////////////////////////////////////////////////
: void __fastcall TfrmMotor::btnSaveClick(TObject *Sender)
: {
: String path,SaveFileName,FileType,fullpath;
: int length;
:
: if( savedlgMotor->Execute() )
: SaveFileName = savedlgMotor->FileName.c_str();
: else
: return;
:
: length = SaveFileName.Length();
: FileType = SaveFileName.SubString(length - 3,4);
: if(FileType == ".pos")
: path = SaveFileName;
: else
: path = SaveFileName + ".pos"; //SaveDialog에서 기존 파일을 선택했을때 .pos 없으면 pos붙임
: if(FileExists(path)) //같은 이름의 파일이 있을경우 덮어쓸지 물어본다.
: {
: if(MessageBox(Application->Handle,"이미 존재하는 파일입니다. 덮어 쓰시겠습니까?","모터데이터 정 보",MB_OKCANCEL|MB_ICONINFORMATION) ==ID_OK)
: {
: for(int MotorNo = 0; MotorNo < MOTORCOUNT; MotorNo++)
: {
: for(int PosNo = 0; PosNo < POSITION_COUNT; PosNo++)
: {
: //ini파일로 파일을 쓰는내용
: }
: }
: }
: }
: else
: {
: for(int MotorNo = 0; MotorNo < MOTORCOUNT; MotorNo++)
: {
: for(int PosNo = 0; PosNo < POSITION_COUNT; PosNo++)
: {
: //ini파일로 파일을 쓰는내용
: }
: }
: }
: //savedlgMotor->Free();
:
:
:
: }
|