|
void __fastcall TForm1::Button3Click(TObject *Sender) //tmp 파일 분할 출력
{
int DataSize = 1240;
int scanPts = 401;
//data type = short(2byte)
short *pArray = new short [DataSize*scanPts];
FILE *infile = fopen("d:\\test1.tmp","rb");
fseek(infile, 54806, SEEK_SET);
fread(pArray, sizeof(short), (DataSize*scanPts), infile);
fclose(infile);
for(int i=0; i < scanPts; i++)
{
AnsiString FileName = "d:\\test\\test1_no.";
AnsiString TmpFileName = (FileName + IntToStr(i) + ".tmp");
for(int j=0; j < DataSize; j++)
{
FILE *OutFile = fopen(TmpFileName.c_str(), "wb");
fprintf(OutFile, "%hd ", pArray[(i*DataSize) + j]);
fclose(OutFile);
}
}
delete [] pArray;
}
코드는 이렇습니다. test1tmp를 읽어들여서 일정크기만큼 분할해서 출력하는 코드인데요.
제가 초보인지라 스레드는 모르고...이렇게 출력하다보니 400개의 파일을 출력하는데 시간이 꽤 오래 걸리더군요. 출력 중엔
프로그램을 사용할 수 없으니 답답하기도 하구요.
아직은 기초적인 함수밖에 사용할 줄 몰라서요....좀 더 출력 속도를 높일 수 있는 방법은 없을까요?
|