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
[68913] Re:CreateFile과 ReadFile
Lyn [tohnokanna] 2062 읽음    2013-01-03 18:00
방금생성한파일이라 텅 비어있으니 읽을게 없잖아요

LeeD 님이 쓰신 글 :
: 안녕하세요.
:
: 제가 파일 생성해서 Read하는 속도를 측정하는
:
: 오픈소스 하나를 구해서 빌더에 적용시키는 중인데요.
:
: static HANDLE hFile;
: static volatile bool WaitFlag;
: static int BufSize = 1024 * 1024;
: static int Loop = 100 * 1024 * 1024;
: static char* buf = NULL;
:
: void TMain::Sequential()
: {
:     int count;
:     double score, maxScore;
:     int i, j;
:     DWORD readSize, writeSize;
:     bool result;
:
:     double StartTime, Time;      <--- 제가 추가한 부분
:
: //////////////////////////////////////////////
: // Read Test
: //////////////////////////////////////////////
:     score = 0.0;
:     maxScore = 0.0;
:     for(j = 0; j <= 5; j++)
:     {
:
:         hFile = CreateFile(
:                                 "C:\\TestCreate.bin",   <--- 제가 추가한 부분
:                 GENERIC_READ|GENERIC_WRITE,
:                 0,
:                 NULL,
:                 OPEN_ALWAYS,    <--- 오픈소스에서는 "OPEN_EXISTING" 였는데 생성이 안되서 바꿈
:                 FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING|FILE_FLAG_SEQUENTIAL_SCAN,
:                 NULL);
:
:         count = 0;
:         WaitFlag = TRUE;
:         StartTime = GetCurrentTime();   <--- 제가 추가한 부분
:
:         for(i = 0; i < 100; i++)
:         {
:             result = ReadFile(hFile, buf, BufSize, &readSize, NULL);
:             if(result)
:             {
:                 count++;
:             }
:             else
:             {
:                 CloseHandle(hFile);
:                 return ;
:             }
:         }
:         SetFilePointer(hFile, 0, NULL, FILE_BEGIN);
:
:         CloseHandle(hFile);
:         Time = GetCurrentTime();   <--- 제가 추가한 부분
:
:         if(j != 0)
:         {
:             score = count * (BufSize / 1000.0) / (Time - StartTime);
:             if(score > maxScore)
:             {
:                 maxScore = score;
:             }
:             Memo1->Lines->Strings[0] = (String)score;   <--- 제가 추가한 부분
:         }
:     }
: }
: void __fastcall TMain::Button1Click(TObject *Sender)
: {
:     Main->Sequential();
: }
:
: 이렇게 해놓고 실행을 시키면 ReadFile에서 리턴값이 false로 나와서 걍 끝나버려요ㅜ
:
: 어디가 잘못 됬나요?

+ -

관련 글 리스트
68912 CreateFile과 ReadFile LeeD 1612 2013/01/03
68913     Re:CreateFile과 ReadFile Lyn 2062 2013/01/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.