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
[58868] Re:stringlist의 값을 FindFirstFile로 읽으려고 하는데 이상한 값이 자꾸 나와요..ㅠ
장성호 [nasilso] 1491 읽음    2009-10-22 18:01
GetText 대신 다음과 같이 쓰세요

if(flist->Count<1)return;

hFile = FindFirstFile((LPCTSTR)flist->Strings[0].c_str(), &FileInformation);


TStringList 클래스는
문자열(AnsiString)과 객체(TObject *)를 담아서 리스트로 관리하는 클래스 입니다.

GetText 하면  

list에 담긴 모든 문자열을 하나의  char * 로 새로 할당해서 return해줍니다.

이경우 GetText로 return 받은 char*를  반드시 delete해줘야 하구요

그럼..


미연아사랑해 님이 쓰신 글 :
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:  HANDLE hFile;
:  char *pszFileName;
:  char *cFileName;
:  char szFileTime1[100];
:  char szFileTime2[100];
:  char szFileTime3[100];
:  SYSTEMTIME st;
:  FILETIME localTime;
:  WIN32_FIND_DATA FileInformation;
:
:     TStringList *flist = new TStringList;
:     GetFullFilePath(flist, Edit1->Text, Edit2->Text, true ); //Edit1은 디렉토리 path구요 Edit2 는 필터입니다.
:
:     pszFileName = flist->GetText();// flist 이 값이 stringlist 값입니다.
:
:     hFile = FindFirstFile((LPCTSTR)pszFileName &FileInformation);
:
:     memset(szFileTime1,0x00,sizeof(szFileTime1));
:     memset(szFileTime2,0x00,sizeof(szFileTime2));
:     memset(szFileTime3,0x00,sizeof(szFileTime3));
:     // 만든 날짜
:     if(FileTimeToLocalFileTime(&FileInformation.ftCreationTime,&localTime))
:       FileTimeToSystemTime(&localTime,&st);
:       sprintf(szFileTime1,"%04d-%02d-%02d %02d:%02d:%02d",st.wYear,st.wMonth,
:       st.wDay,st.wHour,st.wMinute,st.wSecond);
:      ShowMessage(szFileTime1);
:     // 수정한 날짜
:     if(FileTimeToLocalFileTime(&FileInformation.ftLastWriteTime,&localTime))
:       FileTimeToSystemTime(&localTime,&st);
:       sprintf(szFileTime2,"%04d-%02d-%02d %02d:%02d:%02d",st.wYear,st.wMonth,
:       st.wDay,st.wHour,st.wMinute,st.wSecond);
:      ShowMessage(szFileTime2);
:     // 엑세스 날짜
:     if(FileTimeToLocalFileTime(&FileInformation.ftLastAccessTime,&localTime))
:       FileTimeToSystemTime(&localTime,&st);
:       sprintf(szFileTime3,"%04d-%02d-%02d %02d:%02d:%02d",st.wYear,st.wMonth,
:       st.wDay,st.wHour,st.wMinute,st.wSecond);
:      ShowMessage(szFileTime3);
:     // 파일명
:      cFileName = FileInformation.cFileName;
:      ShowMessage(cFileName);
:
:      delete flist;
: }
:
: stringlist의 값인 flist 를 이용하여 FindFirstFile함수를 이용하려 하는데 자꾸 이상한 값이 나옵니다...
: 아마도 캐스팅의 문제같은데요...
: 초보라 정말 어렵습니다..
: 고수님들이 한번 보시고 뭐가 잘 못 되었는지 알려주세요!!^^

+ -

관련 글 리스트
58865 stringlist의 값을 FindFirstFile로 읽으려고 하는데 이상한 값이 자꾸 나와요..ㅠ 미연아사랑해 1229 2009/10/22
58868     Re:stringlist의 값을 FindFirstFile로 읽으려고 하는데 이상한 값이 자꾸 나와요..ㅠ 장성호 1491 2009/10/22
58869         정말 감사합니다^^ 덕분에 해결되었네요~(냉무) 미연아사랑해 738 2009/10/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.