C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[59562] Re:Re:Re:AnsiString문자열에
장성호 [nasilso] 1219 읽음    2009-12-28 18:10
음..
소소코드에서 타이핑할때 \가 두개 필요할뿐이지(타이핑에서만 \\두개가 \실제 한개를 의미함)
실제로 문자열에는 구분자 1개만 들어있으면 됩니다.


님의 코드는
   \를 1개를 지우고
   \를 1개    다시 삽입한 코드입니다.
   결론적으로 결과는 변화가 없다고 봐야죠


아래 코드는 그냥 다음과 같이 하면될듯 하네요

이미 OpenDialog->FileName 에 폴더구문자\는 문제없이 들어가 있습니다.
Excel 에서 AnsiString을 지원하지는 않으니 char* 로 넘기시면 될듯 하네요
그리고 Excel실행부분은 조건문 안으로 넣구요

         if(OpenDialog->Execute())
         {
                 Variant ex=Variant::CreateObject("Excel.Application");
                 ex.OlePropertyGet("WorkBooks").OleProcedure("Open",OpenDialog->FileName.c_str()); 
                 Variant awb=ex.OlePropertyGet("ActiveWorkBook");
         }


그럼..

소병관 님이 쓰신 글 :
: 제가 만드는 프로그램에서는 불러오는 파일명이나 디렉토리가 확실히 구분되어 있지 않다는 가정이 되어있어서
: 다이얼로그에서 불러온 파일 이름에 자동으로 추가하게끔 하려고 하거든요.
:
:         int iFileNameLn;
:         int iPos;
:         AnsiString strExFileName;
:
:         if(OpenDialog->Execute())
:         {
:                 strExFileName = OpenDialog->FileName;
:
:                 iFileNameLn = strExFileName.Length();
:
:                 for(int i = 0; i < iFileNameLn; i++)
:                 {
:                         if(strExFileName.IsPathDelimiter(i))
:                         {
:                                 strExFileName.Delete(i,1);
:                                 strExFileName.Insert("\\",i);
:                                 i=i+2;
:                                 iFileNameLn++;
:                         }
:                 }
:                 ShowMessage(strExFileName);
:         }
:         Variant ex=Variant::CreateObject("Excel.Application");
:         ex.OlePropertyGet("WorkBooks").OleProcedure("Open",strExFileName);     <-------에러나는 부분
:         Variant awb=ex.OlePropertyGet("ActiveWorkBook");
:
: 이런식으로 소스를 짜봤는데 에러가 나네요^^;;
: 뭐가 잘못된건지 좀 봐주시면 감사하겠습니다.
:
:
:
:
:
: 장성호 님이 쓰신 글 :
: : 코드에서 입력할때는 한번더 타이핑하시면 됩니다.
: :
: : String sDir = "C:\\MyFolder\\file.txt";
: :
: : 이런식으로요
: :
: : 그럼..
: :
: : 소병관 님이 쓰신 글 :
: : : 안녕하세요. Builder 6를 사용하고 있는 초짜학생입니다.
: : :
: : : Opendialog로 Excel 파일을 불러와서 data값을 읽어 오려고 하는데
: : :
: : : 파일이름을 불러왔을때 디렉토리를 구분하는 "\"가 하나 부족해서 에러가 나더군요
: : :
: : : 그래서 "\"를 추가하려고 하는데 이것도 추가가 안되네요...
: : :
: : : 방법이 없는건가요... 고수분의 도움을 요청합니다...

+ -

관련 글 리스트
59558 AnsiString문자열에 "\" 문자 삽입 가능한가요? 소병관 1396 2009/12/28
59559     Re:AnsiString문자열에 장성호 1307 2009/12/28
59561         Re:Re:AnsiString문자열에 소병관 1204 2009/12/28
59562             Re:Re:Re:AnsiString문자열에 장성호 1219 2009/12/28
59563                 Re:Re:Re:Re:AnsiString문자열에 소병관 1385 2009/12/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.